Acest tutorial introductiv Python Flask explică ce este Flask, instalarea Python, Virtualenv, exemplul Flask Hello World cu o secțiune de exemple de cod, depanare și testare:
Dezvoltarea unui site web este mai mult o artă decât o abilitate. Necesită răbdare și diligență, alături de perseverență, curaj și dedicare pentru a crea ceea ce este necesar pentru ca acesta să fie un real succes. În zilele noastre, este esențial ca cei care învață să se pună la punct cât mai repede posibil.
Am creat acest tutorial Python Flask pentru ca studenții să se familiarizeze cu viteza și să implementeze programarea web simplă și complexă folosind Python 3.
Acest tutorial Python Flask este mai degrabă un tutorial pentru începători flask, care va acoperi instalarea Python, Virtualenv și alte pachete esențiale. În această serie de tutoriale, vom instala, de asemenea, Flask împreună cu alte plugin-uri Flask necesare. Am inclus, de asemenea, o secțiune despre depanarea codului, testarea și integrarea continuă folosind Git Actions.
Lista de tutoriale din această serie Flask
Tutorial #1: Python Flask Tutorial - Introducere în Flask pentru începători
Tutorial #2: Flask Template, Formular, Vizualizare și Redirecționare cu exemple
Tutorial #3: Manipularea bazei de date Flask - Cum să utilizați Flask cu o bază de date
Tutorial #4: Flask App și Flask Project Layout cu Blueprint &; Bootstrap
Tutorial #5: Modele de proiectare Flask și cele mai bune practici pentru aplicații web
Tutorial #6: Flask API Tutorial cu exemplu
Tutorial #7: Django Vs Flask Vs Node: Ce cadru de lucru să selectați
Tutorial #8: Top 31 Întrebări populare de interviu Python Flask cu răspunsuri
Ce este Flask
Flask este un cadru de dezvoltare web. Este un cadru cu un server de dezvoltare și un depanator încorporat.
Cadrul Flask în sine este diferit de celelalte arhetipuri, deoarece permite dezvoltatorilor web să fie flexibili și să se adapteze în mod confortabil la schimbările publicate frecvent în comunitatea de dezvoltare software.
Pentru ce se folosește Flask
Folosim cadrul Flask pentru dezvoltarea de aplicații web în limbajul de programare Python. Acesta se integrează cu alte servicii și API-uri terțe pentru a aduce bogăție și semnificație aplicației în curs de dezvoltare. Conceptele de bază ale Flask sunt simple și are o amprentă foarte mică.
Să începem cu acest tutorial Python Flask pentru a înțelege dezvoltarea web cu ajutorul unui depozit Flask GitHub. Cu toate acestea, înainte de a continua, vă rugăm să clonați proiectul de pe Github pentru a urmări cu ușurință exemplele de cod discutate.
Condiții prealabile
În afară de rubricile menționate în această secțiune, vă recomandăm să creați un cont Github. Să continuăm cu pașii menționați mai jos în cadrul condițiilor prealabile.
Pasul 1: Instalați Python
Verificați dacă aveți instalat sau nu Python 3. Dacă nu, descărcați Python 3 de aici și instalați-l în funcție de sistemul de operare.
Pasul 2: Creați un mediu virtual Python
Creați un mediu virtual utilizând comanda de mai jos.
python3 -m venv venv
Utilizați comanda de mai jos pentru a activa mediul virtual Python.
sursa venv/bin/activate
Mai jos am dat un exemplu de activare și dezactivare a mediului virtual.
Toate comenzile ulterioare din acest tutorial trebuie să ruleze într-un mediu virtual activat. Instalați pachetul wheel pentru a putea construi roți în mediul virtual.
pip install wheel
Pasul 3: Descărcare și instalare Flask
Trebuie să efectuăm pașii de descărcare a Flask și să instalăm Flask folosind pașii menționați mai jos.
Acum instalați Flask.
pip install flask
Unii dintre noi preferă să lucreze împreună cu cele mai recente modificări ale codului sursă. Putem folosi comanda de mai jos pentru a instala cu cele mai recente modificări ale surselor Flask.
Creați un director temporar.
mkdir tmp
Acum instalați Flask din depozitul Github. Trebuie să rămâneți conectat la internet pentru ca comanda de mai jos să funcționeze.
pip3 install -e [email protected]:pallets/flask.git#egg=flask
Uitați-vă la ieșirile din consolă pentru a verifica dacă instalarea a avut succes. Acum verificați dacă putem accesa comenzile Flask.
flask --help
S-ar putea să vedeți unele excepții privind absența unei aplicații Flask. Totuși, nu le luați în considerare, deoarece nu am creat nicio aplicație Flask. Aplicația noastră este o instanță de Flask, care este un înveliș pentru cadrul web Werkzeug și motorul de modelare Jinja.
Werkzeug
Werkzeug este un set de instrumente WSGI. WSGI este doar o convenție de apelare pentru serverele web pentru a transmite cereri web la aplicațiile web scrise în limbajul de programare Python.
Jinja
Jinja este un motor de creare de șabloane complet și popular pentru Python. Este un limbaj destul de expresiv și oferă un set robust de instrumente pentru autorii de șabloane.
Pasul 4: Instalați MongoDB
Urmați pașii menționați mai jos pentru a instala MongoDB. Am descris pașii de instalare în Linux bazat pe Debian. Dacă utilizați un alt sistem de operare, accesați link-ul și instalați-l conform sistemului de operare dorit.
Instalați gnupg pentru a importa cheia publică GPG a MongoDB.
sudo apt-get install gnupg
Acum importați cheia folosind comanda de mai jos.
wget -qO - //www.mongodb.org/static/pgp/server-4.2.asc
Creați fișierul cu lista de surse în funcție de distribuția dvs. Linux. Noi am adăugat lista de surse în conformitate cu Debian.
echo "deb //repo.mongodb.org/apt/debian buster/mongodb-org/4.2 main"
Rulați comanda de actualizare
sudo apt-get update
Acum instalați MongoDB, folosind comanda de mai jos.
sudo apt-get install -y mongodb-org
După ce instalarea a fost efectuată cu succes, porniți MongoDB folosind comanda de mai jos.
sudo systemctl start mongod
Verificați starea MongoDB, folosind comanda de mai jos.
sudo systemctl status mongod
Acum asigurați-vă că mongod pornește automat la repornirea sistemului prin emiterea comenzii de mai jos.
sudo systemctl enable mongod
Acum verificați dacă vă puteți conecta la serverul MongoDB folosind clientul Mongo.
mongo
În shell-ul mongo, încercați să utilizați comenzile help și show dbs.
Creați o aplicație Flask
Utilizați comanda de mai jos pentru a instala flask-appbuilder și mongoengine.
pip install flask-appbuilder pip install mongoengine pip install flask_mongoengine
Creați o aplicație de tip schelet cu valorile prezentate ca și comentarii în fragmentul de cod de mai jos.
flask fab create-app # Dați următoarele valori în chestionarul din linia de comandă # Numele aplicației: flaskTutorialApp # EngineType : MongoEngine
Vom vedea un rezultat similar cu cel de mai jos.
Numele noii aplicații: exampleApp Tipul motorului, SQLAlchemy sau MongoEngine (SQLAlchemy, MongoEngine) [SQLAlchemy]: MongoEngine Am descărcat aplicația schelet, codare bună!
Aruncați o privire la aspectul proiectului și al aplicației. Am prezentat mai jos rezultatul comenzii tree.
Să aruncăm o privire la fișierul de configurare Flask. Este o configurație implicită generată ca rezultat al ultimei comenzi. Decomentați Cyborg așa cum se arată mai jos.
# Configurația temei pentru Cybord=g # aceste teme sunt localizate în static/appbuilder/css/themes # Putem crea propriile noastre teme și le putem folosi cu ușurință plasându-le în aceeași structură de dir pentru a le suprascrie #APP_THEME = "bootstrap-theme.css" # bootstrap implicit #APP_THEME = "cerulean.css" # cerulean #APP_THEME = "amelia.css" # tema amelia #APP_THEME = "cosmo.css" # tema cosmo APP_THEME = "cyborg.css" # cyborgtheme #APP_THEME = "flatly.css" # flatly theme
Pentru a rula aplicația schelet, utilizați comanda de mai jos în terminal.
flask rulați
Flask Hello World
Pentru a crea primul program în flaskTutorialApp, deschideți fișierul views.py din directorul app și adăugați următorul cod. Căutați declarațiile de import date în fișier. Adăugați aceste declarații dacă nu sunt deja prezente.
from flask_appbuilder import BaseView, expose from app import appbuilder class HelloWorld(BaseView): """" Această primă vizualizare a tutorialului """ route_base = "/hello" @expose("/") def hello(self): return "Hello, World! from Software Testing Help" # la sfârșitul fișierului appbuilder.add_view_no_menu(HelloWorld())
Salvați fișierul după adăugarea codului sursă de mai sus. Mergeți în directorul rădăcină al proiectului și utilizați comanda de mai jos pentru a rula serverul de dezvoltare Flask.
flask rulați
Acum navigați la //localhost:5000/hello/ pentru a vedea rezultatul în browser.
Depanare
În prezent, serverul de dezvoltare nu rulează în modul de depanare. Fără modul de depanare, este dificil să găsiți erorile din codul sursă al aplicației Flask.
Modul de depanare în Flask are următorul rezultat:
- Modul de depanare activează Reîncărcarea automată. Aceasta înseamnă că nu trebuie să repornim serverul de dezvoltare după ce facem modificări în codul sursă al aplicației.
- Modul de depanare activează depanatorul Python. Putem inspecta valorile variabilelor în timpul excepției.
- Modul de depanare activează depanarea aplicației Flask. Putem verifica valorile diferitelor variabile în sesiunile de depanare.
Opriți serverul de dezvoltare, dacă acesta rulează deja. Puteți utiliza CTRL + C sau întreruperea tastaturii pentru a face același lucru.
Utilizați următorul cod pentru a activa modul de depanare și pentru a rula temporar serverul de dezvoltare.
FLASK_ENV=development flask run
Căutați în consolă codul PIN Debugger și notați-l.
Acum, să modificăm vizualizarea HelloWorld scrisă mai sus cu următoarele linii ale fragmentului de cod. Observați că am introdus o excepție personalizată.
@expose("/") def hello(self): raise Exception("O excepție personalizată pentru a învăța modul DEBUG") return "Hello, World! from Software Testing Help"
Navigați la //localhost:5000/hello/ și veți vedea că aplicația a ridicat o excepție. Browserul afișează urmărirea stivei, după cum se arată mai jos.
![](/wp-content/uploads/guides/iae5sr2a76-3.png)
În plus, uitați-vă la consola în care rulează serverul de dezvoltare. Veți constata că, de data aceasta, modificările din views.py sunt detectate automat, iar serverul de depanare se repornește singur. Acum nu mai este nevoie să îl repornim manual.
Consola va avea linii, așa cum se arată mai jos. Trebuie să notăm PIN-ul Debug pentru mai târziu.
* Schimbare detectată în '/work/sth/flaskTutorialApp/app/views.py', reîncărcare 2020-06-02 14:59:49,354:INFO:werkzeug: * Schimbare detectată în '/work/sth/flaskTutorialApp/app/views.py', reîncărcare * Repornire cu stat 2020-06-02 14:59:49,592:INFO:werkzeug: * Repornire cu stat * Debuggerul este activ! * PIN-ul debuggerului: 150-849-897
Acum verificați urmărirea stivei în browser și mergeți la ultima linie. Faceți clic pe ea pentru a extinde vizualizarea și faceți clic pe pictograma CLI pentru a deschide shell-ul în modul interactiv.
![](/wp-content/uploads/guides/iae5sr2a76-4.png)
După ce îl deschideți, veți vedea că browserul va afișa o solicitare pentru Debug PIN. Introduceți Debug PIN și faceți clic pe OK.
![](/wp-content/uploads/guides/iae5sr2a76-5.png)
Odată ce am trecut mai departe după ce am dat PIN-ul Debug, putem accesa shell-ul interactiv.
Accesăm shell-ul din browser și putem inspecta valorile variabilelor pentru a găsi cauza excepției și pentru a gestiona eroarea într-un mod mai bun. Vă rugăm să vă uitați la unul dintre exemplele prezentate în imaginea de mai jos.
![](/wp-content/uploads/guides/iae5sr2a76-6.png)
Acum modificați codul din view.py, după cum se arată mai jos. Observați că am comentat linia care a generat excepția.
@expose("/") def hello(self): # raise Exception("O excepție personalizată pentru a învăța modul DEBUG") return "Hello, World! from Software Testing Help"
Testarea aplicației Flask
Acum să scriem primul nostru test pentru aplicația Flask pe care o dezvoltăm. În primul rând, instalați PyTest. PyTest este un cadru de testare. Ne ajută să scriem cod mai bun.
Mai mult, doar pentru că putem scrie teste unitare în timp ce ne dezvoltăm aplicațiile, este posibil să urmăm abordarea TDD. TDD înseamnă Test-Driven Development. În următoarele tutoriale din această serie, vom scrie întotdeauna mai întâi testele și apoi vom dezvolta vederile sau modelele.
Instalați PyTest
pip install pytest
Acum, creați un director numit tests în directorul app și creați un fișier numit test_hello.py. Să scriem primul nostru test unitar pentru a testa vizualizarea noastră.
Copiați următorul fragment de cod și lipiți-l în test_hello.py.
#!/usr/bin/env python from app import appbuilder import pytest @pytest.fixture def client(): """" Un fixture pytest pentru clientul de test """ appbuilder.app.config["TESTING"] = True with appbuilder.app.test_client() as client: yield client def test_hello(client): """" O metodă de test pentru a testa vizualizarea bună ziua """ resp = client.get("/hello", follow_redirects=True) assert 200 == resp.status_code
Utilizați comanda pytest de mai jos pentru a rula testele. PyTest colectează automat testele și afișează rezultatele pe ieșirea standard.
![](/wp-content/uploads/guides/iae5sr2a76-7.png)
Creați un flux de lucru GitHub
Utilizăm Git Actions pentru a crea un flux de lucru CI/CD pentru aplicația noastră de probă. Urmați pașii menționați mai jos pentru proiectul dvs.
Pasul 1: Navigați la pagina de depozit de pe GitHub. Faceți clic pe Git Actions.
![](/wp-content/uploads/guides/iae5sr2a76-8.png)
Pasul 2: Derulați în jos pe pagină și găsiți un șablon de flux de lucru existent pentru un pachet Python.
![](/wp-content/uploads/guides/iae5sr2a76-9.png)
Pasul 3: Configurați pachetul Python Workflow.
![](/wp-content/uploads/guides/iae5sr2a76-10.png)
Pasul 4: Odată ce se deschide configurația fluxului de lucru python-package.yml, actualizați-o pe baza valorilor tag-ului suplimentar yaml date.
name: flaskTutorialApp jobs: build: runs-on: ubuntu-latest strategy: matrix: python-version: [3.7, 3.8] mongodb-version: [4.2] steps: - name: Start MongoDB uses: supercharge/[email protected] with: mongodb-version: ${{ matrix.mongodb-version }} # other values
Dorim să testăm aplicația noastră Flask pe cea mai recentă distribuție Ubuntu Linux. În plus față de sistemul de operare, dorim să efectuăm testele noastre numai cu Python 3.7 și Python 3.8.
Pasul 5: Confirmați fișierul python-package.yml cu valorile actualizate.
![](/wp-content/uploads/guides/iae5sr2a76-11.png)
Pasul 6: Trimiterea din pagina anterioară ne duce la lucrările GitActions.
![](/wp-content/uploads/guides/iae5sr2a76-12.png)
Pasul 7: [Opțional]
Pe pagina Github Jobs pentru aplicația tutorial de exemplu, putem crea o insignă și o putem plasa pe fișierul README.md pentru a afișa starea de construcție.
Acum, de fiecare dată când modificările sunt trimise în ramura principală, fluxul de lucru Git, așa cum este scris în python-package.yml, va fi urmat și rulat pe Git Actions.
Concluzie
În acest tutorial, am acoperit toate conceptele de bază, de la condiții prealabile până la configurarea fluxului de lucru CI/CD pentru o aplicație web dezvoltată folosind Flask - un cadru de dezvoltare web bazat pe Python.
Acest tutorial acoperă toți pașii necesari, cum ar fi instalarea Python, descărcarea & instalarea Flask, lucrul cu Flask-Appbuilder, testarea cu PyTest, etc. pentru a începe dezvoltarea web folosind Python. Comunitatea de dezvoltare web compară de obicei Flask cu un alt cadru popular de dezvoltare web Python numit Django.
Vom explica aceste diferențe și, de asemenea, vom compara aceste cadre într-unul dintre tutorialele din această serie.