Ta uvodna vadnica za Python Flask pojasnjuje, kaj je Flask, namestitev Pythona, Virtualenv, primer Flask Hello World z razdelkom o primerih kode, razhroščevanju in testiranju:
Razvoj spletnih strani je bolj umetnost kot spretnost. Zahteva potrpežljivost in marljivost ter vztrajnost, pogum in predanost pri ustvarjanju tistega, kar je potrebno za resničen uspeh. V današnjem času je za učence bistvenega pomena, da se čim prej usposobijo za delo.
To vadnico za Python Flask smo ustvarili za učence, da bi se seznanili s hitrostjo in izvajanjem preprostega in zapletenega spletnega programiranja z uporabo Pythona 3.
Ta Python Flask tutorial je bolj kot flask tutorial za začetnike, ki bo zajemal namestitev Pythona, Virtualenva in drugih bistvenih paketov. V tej seriji tutorialov bomo namestili tudi Flask skupaj z drugimi potrebnimi vtičniki Flask. Vključili smo tudi razdelek o razhroščevanju kode, testiranju in neprekinjeni integraciji z uporabo Git Actions.
Seznam učnih gradiv v tej seriji Flask
Učni pripomoček št. 1: Python Flask Tutorial - Uvod v Flask za začetnike
Učni pripomoček št. 2: Predloga, obrazec, pogled in preusmeritev Flask s primeri
Vadnica #3: Ravnanje s podatkovno bazo Flask - Kako uporabljati Flask s podatkovno bazo
Vadnica #4: Postavitev aplikacije Flask in projekta Flask z Blueprintom & amp; Bootstrap
Učni pripomoček #5: Oblikovalski vzorci in najboljše prakse za spletne aplikacije Flask
Učni pripomoček #6: Flask API Tutorial s primerom
Tutorial #7: Django Vs Flask Vs Node: Katero ogrodje izbrati
Tutorial #8: Top 31 Priljubljena vprašanja za razgovor za Python Flask z odgovori
Kaj je Flaška
Flask je ogrodje za spletni razvoj. To je ogrodje z vgrajenim razvojnim strežnikom in razhroščevalnikom.
Ogrodje Flask se že samo po sebi razlikuje od drugih arhetipov, saj spletnim razvijalcem omogoča prilagodljivost in udobno prilagajanje pogosto objavljenim spremembam v skupnosti razvijalcev programske opreme.
Za kaj se uporablja Flaška
Za razvoj spletnih aplikacij v programskem jeziku Python uporabljamo ogrodje Flask, ki se povezuje z drugimi storitvami tretjih oseb in vmesniki API ter tako razvijajoči se aplikaciji daje bogastvo in pomen. Osnovni koncepti ogrodja Flask so preprosti in ima majhen odtis.
Začnimo s tem učbenikom Python Flask, da bi razumeli spletni razvoj s pomočjo repozitorija Flask GitHub. Preden nadaljujete, klonite projekt iz Githuba, da boste lažje sledili obravnavanim primerom kode.
Predpogoji
Poleg omenjenih naslovov v tem razdelku priporočamo tudi ustvarjanje računa Github. Nadaljujmo s spodaj navedenimi koraki v predpogojih.
Korak 1: Namestite Python
Preverite, ali imate nameščen Python 3. Če ne, prenesite Python 3 s tega mesta in ga namestite v skladu s svojim operacijskim sistemom.
Korak 2: Ustvarite virtualno okolje Python
Ustvarite navidezno okolje s spodnjim ukazom.
python3 -m venv venv
Z naslednjim ukazom aktivirajte navidezno okolje Python.
vir venv/bin/activate
V nadaljevanju smo prikazali primer aktivacije in deaktivacije virtualnega okolja.
Vsi naslednji ukazi v tem učbeniku se morajo izvajati v aktiviranem navideznem okolju. Namestite paket wheel, da bomo lahko gradili kolesa v navideznem okolju.
pip namestite kolo
Korak 3: Prenos in namestitev Flaska
Opraviti moramo korake prenosa Flask in namestiti Flask z uporabo spodaj navedenih korakov.
Zdaj namestite Flask.
pip install flask
Nekateri od nas radi delajo z najnovejšimi spremembami izvorne kode. Za namestitev z najnovejšimi spremembami izvorne kode programa Flask lahko uporabimo spodnji ukaz.
Ustvarite začasni imenik.
mkdir tmp
Zdaj namestite Flask iz skladišča Github. Za delovanje spodnjega ukaza morate ostati povezani z internetom.
pip3 install -e [email protected]:pallets/flask.git#egg=flask
V konzolnih izhodih preverite, ali je namestitev uspešna. Zdaj preverite, ali lahko dostopamo do ukazov Flask.
flask --help
Morda boste opazili nekaj izjem, da ni aplikacije Flask, vendar jih zanemarite, saj nismo ustvarili nobene aplikacije Flask. Naša aplikacija je primerek Flask, ki je ovoj na spletnem ogrodju Werkzeug in mehanizmu za oblikovanje predlog Jinja.
Werkzeug
Werkzeug je nabor orodij WSGI. WSGI je le klicna konvencija za spletne strežnike, ki posredujejo spletne zahteve za spletne aplikacije, napisane v programskem jeziku Python.
Jinja
Jinja je v celoti opremljen in priljubljen mehanizem za oblikovanje predlog za Python. Je precej ekspresiven jezik in avtorjem predlog zagotavlja robusten nabor orodij.
Korak 4: Namestitev MongoDB
Za namestitev MongoDB sledite spodaj navedenim korakom. Opisali smo korake za namestitev v Debian Linux. Če uporabljate drug operacijski sistem, odprite povezavo in namestite, kot je predvideno za operacijski sistem.
Namestite gnupg za uvoz javnega ključa GPG MongoDB.
sudo apt-get install gnupg
Zdaj uvozite ključ s spodnjim ukazom.
wget -qO - //www.mongodb.org/static/pgp/server-4.2.asc
Ustvarite datoteko s seznamom virov v skladu s svojo distribucijo Linuxa. Mi smo dodali seznam virov v skladu z Debianom.
echo "deb //repo.mongodb.org/apt/debian buster/mongodb-org/4.2 main"
Zaženite ukaz za posodobitev
sudo apt-get update
Zdaj namestite MongoDB s spodnjim ukazom.
sudo apt-get install -y mongodb-org
Ko je namestitev uspešna, zaženite MongoDB s spodnjim ukazom.
sudo systemctl start mongod
S spodnjim ukazom preverite stanje MongoDB.
sudo systemctl status mongod
Zdaj zagotovite, da se mongod samodejno zažene ob ponovnem zagonu sistema, tako da izdate spodaj prikazani ukaz.
sudo systemctl omogoči mongod
Zdaj preverite, ali se lahko s strežnikom MongoDB povežete z odjemalcem mongo.
mongo
V lupini mongo poskusite uporabiti ukaza help in show dbs.
Ustvarjanje aplikacije Flask
Za namestitev flask-appbuilderja in mongoengine uporabite spodnji ukaz.
pip install flask-appbuilder pip install mongoengine pip install flask_mongoengine
Ustvarite skeletno aplikacijo z vrednostmi, ki so prikazane kot komentarji v spodnjem odlomku kode.
flask fab create-app # V vprašalniku ukazne vrstice navedite naslednje vrednosti # Ime aplikacije: flaskTutorialApp # EngineType : MongoEngine
Videli bomo podoben izpis, kot je prikazan spodaj.
Ime vaše nove aplikacije: exampleApp Vrsta motorja, SQLAlchemy ali MongoEngine (SQLAlchemy, MongoEngine) [SQLAlchemy]: MongoEngine Prenesli ste skeletno aplikacijo, dobro kodiranje!
Oglejte si postavitev projekta in aplikacije. V nadaljevanju smo prikazali izhodni ukaz drevesa.
Oglejmo si konfiguracijsko datoteko Flask. Gre za privzeto konfiguracijo, ki je bila ustvarjena kot rezultat zadnjega ukaza. Odpišite komentar Kiborg kot je prikazano spodaj.
# Konfiguracija teme za Cybord=g # te teme se nahajajo na static/appbuilder/css/themes # Ustvarimo lahko svoje in jih enostavno uporabljamo tako, da jih postavimo v isto dir strukturo, ki jo prekrijemo #APP_THEME = "bootstrap-theme.css" # default bootstrap #APP_THEME = "cerulean.css" # cerulean #APP_THEME = "amelia.css" # amelia theme #APP_THEME = "cosmo.css" # cosmo theme APP_THEME = "cyborg.css" # cyborgtema #APP_THEME = "flatly.css" # flatly tema
Če želite zagnati okostje aplikacije, v terminalu uporabite spodnji ukaz.
flask run
Flask Pozdravljen svet
Če želite ustvariti svoj prvi program v flaskTutorialApp, odprite datoteko views.py v imeniku app in dodajte naslednjo kodo. V datoteki poiščite izjave import. Če jih še ni, jih dodajte.
from flask_appbuilder import BaseView, expose from app import appbuilder class HelloWorld(BaseView): """" Ta prvi pogled v učbeniku """ route_base = "/hello" @expose("/") def hello(self): return "Hello, World! from Software Testing Help" # na koncu datoteke appbuilder.add_view_no_menu(HelloWorld())
Po dodajanju zgornje izvorne kode shranite datoteko. Pojdite v korenski imenik projekta in s spodnjim ukazom zaženite razvojni strežnik Flask.
flask run
Sedaj pojdite na naslov //localhost:5000/hello/ in si oglejte izpis v brskalniku.
Razhroščevanje
Razvojni strežnik trenutno ne deluje v načinu za odpravljanje napak. Brez načina za odpravljanje napak je težko najti napake v izvorni kodi aplikacije Flask.
V načinu Debug Mode v programu Flask je rezultat naslednji:
- Način Debug aktivira Samodejno ponovno nalaganje. To pomeni, da nam ni treba ponovno zagnati razvojnega strežnika, ko naredimo spremembe v izvorni kodi aplikacije.
- Način Debug aktivira debugger Pythona. Med Izjemo lahko pregledujemo vrednosti spremenljivk.
- Način za odpravljanje napak omogoča odpravljanje napak v aplikaciji Flask. V sejah za odpravljanje napak lahko preverimo vrednosti različnih spremenljivk.
Ustavite razvojni strežnik, če je že zagnan. Za to lahko uporabite kombinacijo tipk CTRL + C ali prekinitev tipkovnice.
Z naslednjo kodo omogočite način za odpravljanje napak in začasno zaženite razvojni strežnik.
FLASK_ENV=development flask run
V konzoli poiščite kodo PIN za debugger in si jo zabeležite.
Zdaj spremenimo zgoraj zapisani pogled HelloWorld z naslednjimi vrsticami odlomka kode. Opazite, da smo uvedli izjemo po meri.
@expose("/") def hello(self): raise Exception("Izjema po meri za učenje načina DEBUG") return "Hello, World! from Software Testing Help"
Pojdite na naslov //localhost:5000/hello/ in videli boste, da je aplikacija sprožila izjemo. Brskalnik prikaže sled zastoja, kot je prikazano spodaj.
![](/wp-content/uploads/guides/iae5sr2a76-3.png)
Poleg tega si oglejte konzolo, v kateri teče razvojni strežnik. Ugotovili boste, da so tokrat spremembe v views.py samodejno zaznane in da se razhroščevalni strežnik znova zažene sam. Zdaj nam ga ni treba ponovno zagnati ročno.
V konzoli bodo vrstice, kot je prikazano spodaj. PIN za odpravljanje napak si moramo zabeležiti za pozneje.
* Zaznana sprememba v '/work/sth/flaskTutorialApp/app/views.py', ponovno nalaganje 2020-06-02 14:59:49,354:INFO:werkzeug: * Zaznana sprememba v '/work/sth/flaskTutorialApp/app/views.py', ponovno nalaganje * Ponovni zagon s stat 2020-06-02 14:59:49,592:INFO:werkzeug: * Ponovni zagon s stat * Debugger je aktiven! * PIN debuggerja: 150-849-897
Zdaj v brskalniku preverite sled zastoja in pojdite na zadnjo vrstico. Kliknite nanjo, da razširite njen pogled, in kliknite ikono CLI, da odprete lupino v interaktivnem načinu.
![](/wp-content/uploads/guides/iae5sr2a76-4.png)
Ko ga odprete, se v brskalniku prikaže poziv za kodo PIN za odpravljanje napak. Navedite kodo PIN za odpravljanje napak in kliknite V redu.
![](/wp-content/uploads/guides/iae5sr2a76-5.png)
Ko po vnosu kode PIN za razhroščevanje nadaljujemo, lahko dostopamo do interaktivne lupine.
Do lupine dostopamo iz brskalnika in lahko pregledamo vrednosti spremenljivk ter tako poiščemo vzrok za izjemo in napako obravnavamo na boljši način. Oglejte si enega od primerov, prikazanih na spodnji sliki.
![](/wp-content/uploads/guides/iae5sr2a76-6.png)
Zdaj spremenite kodo v datoteki view.py, kot je prikazano spodaj. Upoštevajte, da smo komentirali vrstico, v kateri se je pojavila izjema.
@expose("/") def hello(self): # raise Exception("Izjema po meri za učenje načina DEBUG") return "Hello, World! from Software Testing Help"
Preizkušanje aplikacije Flask
Zdaj napišimo prvi test za aplikacijo Flask, ki jo razvijamo. Najprej namestite PyTest. PyTest je ogrodje za testiranje. Pomaga nam pri pisanju boljše kode.
Poleg tega lahko samo zato, ker lahko med razvojem aplikacije pišemo teste enote, sledimo pristopu TDD. TDD je kratica za Test-Driven Development. V naslednjih učnih gradivih iz te serije bomo vedno najprej napisali teste in nato razvili poglede ali modele.
Namestitev PyTest
pip install pytest
Zdaj ustvarite imenik z imenom tests znotraj imenika aplikacije in v njem ustvarite datoteko z imenom test_hello.py. Napišimo naš prvi test enote za testiranje našega pogleda.
Kopirajte naslednji del kode in ga prilepite v test_hello.py.
#!/usr/bin/env python from app import appbuilder import pytest @pytest.fixture def client(): """ A pytest fixture for test client """ appbuilder.app.config["TESTING"] = True with appbuilder.app.test_client() as client: yield client def test_hello(client): """ A test method to test view hello """ resp = client.get("/hello", follow_redirects=True) assert 200 == resp.status_code
Za zagon testov uporabite spodnji ukaz pytest. PyTest samodejno zbere teste in prikaže rezultate na standardnem izhodu.
![](/wp-content/uploads/guides/iae5sr2a76-7.png)
Ustvarjanje delovnega toka GitHub
Za ustvarjanje delovnega postopka CI/CD za našo vzorčno aplikacijo uporabljamo program Git Actions. Za svoj projekt sledite spodaj navedenim korakom.
Korak 1: Pojdite na stran skladišča v GitHubu. Kliknite Git Actions.
![](/wp-content/uploads/guides/iae5sr2a76-8.png)
Korak 2: Pomaknite se navzdol po strani in poiščite obstoječo predlogo poteka dela za paket Python.
![](/wp-content/uploads/guides/iae5sr2a76-9.png)
Korak 3: Nastavitev paketa Python Workflow.
![](/wp-content/uploads/guides/iae5sr2a76-10.png)
Korak 4: Ko se odpre konfiguracija delovnega postopka python-package.yml, jo posodobite na podlagi danih vrednosti dodatnih oznak yaml.
ime: flaskTutorialApp opravila: build: runs-on: ubuntu-latest strategija: matrix: python-version: [3.7, 3.8] mongodb-version: [4.2] koraki: - ime: Start MongoDB uses: supercharge/[email protected] with: mongodb-version: ${{ matrix.mongodb-version }} # druge vrednosti
Aplikacijo Flask želimo preizkusiti v najnovejši distribuciji Ubuntu Linux. Poleg operacijskega sistema želimo teste izvajati samo z uporabo programov Python 3.7 in Python 3.8.
Korak 5: Zavezati python-package.yml s posodobljenimi vrednostmi.
![](/wp-content/uploads/guides/iae5sr2a76-11.png)
Korak 6: Z oddajo na prejšnji strani smo prešli na delovna mesta GitActions.
![](/wp-content/uploads/guides/iae5sr2a76-12.png)
Korak 7: [neobvezno]
Na strani Github Jobs za vzorčno vadbeno aplikacijo lahko ustvarimo značko in jo postavimo v datoteko README.md za prikaz stanja gradnje.
Zdaj se bo ob vsaki oddaji sprememb v glavno vejo upošteval delovni postopek Git, kot je zapisan v python-package.yml, in se izvajal v akcijah Git.
Zaključek
V tem učbeniku smo zajeli vse osnovne koncepte, od predpogojev do vzpostavitve delovnega postopka CI/CD za spletno aplikacijo, razvito s Flaskom - ogrodjem za razvoj spletnih aplikacij, ki temelji na Pythonu.
Ta vadnica zajema vse potrebne korake, kot so namestitev Pythona, prenos & namestitev Flaska, delo s programom Flask-Appbuilder, testiranje s PyTestom itd., da lahko začnete z razvojem spletnih strani z uporabo Pythona. Skupnost spletnih razvijalcev običajno primerja Flask z drugim priljubljenim ogrodjem za razvoj spletnih strani v Pythonu, imenovanim Django.
Te razlike bomo razložili in primerjali ta ogrodja v enem od učnih gradiv v tej seriji.