python flask tutorial introduction flask
Ta uvodna vadnica Python Flask razlaga, kaj je Flask, namestitev Python, Virtualenv, Flask Hello World primer z razdelkom o primerih kode, odpravljanju napak in testiranju:
Razvoj spletnih strani je bolj umetnost kot spretnost. Zahteva potrpljenje in skrbnost, skupaj z vztrajnostjo, pogumom in predanostjo, da ustvari tisto, kar je potrebno, da bo resnično uspelo. Dandanes je za učence bistvenega pomena, da čim prej dosežejo hitrost.
Za vaje smo ustvarili to vadnico Python Flask, s katero lahko študentje hitro in hitro izvajajo tako preprosto kot zapleteno spletno programiranje s pomočjo Pythona 3.
Ta vadnica Python Flask je bolj podobna vadnici za bučke, ki bo zajemala namestitev Pythona, Virtualenva in drugih bistvenih paketov. V tej seriji vadnic bomo namestili tudi Flask skupaj z drugimi potrebnimi vtičniki Flask. Vključili smo tudi razdelek o odpravljanju napak kode, preskušanju in nenehni integraciji z uporabo Git Action.
Kaj se boste naučili:
Seznam vadnic v tej seriji bučk
Vadnica št. 1: Vadnica za bučko Python - Uvod v bučko za začetnike
Vadnica # 2: Predloga bučke, obrazec, pogled in preusmeritev s primeri
Vadnica št. 3: Ravnanje z bazo podatkov o bučah - Kako uporabljati bučko z bazo podatkov
Vadnica # 4: Postavitev bučke in projekt bučke z načrtom in zagonskim trakom
Vadnica št. 5: Vzorci za oblikovanje bučk in najboljši postopki za spletne aplikacije
Vadnica # 6: Vadnica API Flask s primerom | Razširitev bučke z API-ji
Vadnica št. 7: Django Vs Flask Vs Node: Kateri okvir izbrati
Vadnica št. 8: 31 najbolj priljubljenih vprašanj za intervju z Python Flask z odgovori
Kaj je bučka
Flask je okvir za spletni razvoj. Je ogrodje z vgrajenim razvojnim strežnikom in razhroščevalnikom.
ročna vprašanja in vprašanja za avtomatizacijo
Flask framework se že sam po sebi razlikuje od ostalih arhetipov, saj omogoča razvijalcem spletnih strani prilagodljivost in udobno prilagajanje pogosto objavljenim spremembam v skupnosti za razvoj programske opreme.
Za kaj se uporablja bučka
Okvir Flask uporabljamo za razvoj spletnih aplikacij v programskem jeziku Python. Integrira se z drugimi neodvisnimi storitvami in API-ji, da aplikaciji, ki se razvija, prinese bogastvo in pomen. Osnovni koncepti bučke so preprosti in imajo majhen odtis.
Začnimo s to vadnico Python Flask, da bomo razumeli razvoj spletnih strani s pomočjo repozitorija Flask GitHub. Preden nadaljujete, pa klonirajte projekt iz Githuba, da boste lažje nadaljevali obravnavane primere kode.
Pogoji
Razen omenjenih naslovov v tem oddelku priporočamo, da ustvarite račun Github. Nadaljujmo s spodnjimi koraki v predpogojih.
1. korak: Namestite Python
Preverite, ali ste namestili Python 3 ali ne. V nasprotnem primeru prenesite Python 3 iz tukaj in ga namestite v skladu z vašim operacijskim sistemom.
2. korak: Ustvarite navidezno okolje Python
Ustvarite navidezno okolje z uporabo spodnjega ukaza.
python3 -m venv venv
Uporabite spodnji ukaz za aktiviranje navideznega okolja Python.
source venv/bin/activate
Spodaj smo podali primer aktiviranja in deaktiviranja virtualnega okolja.
Vsi nadaljnji ukazi v tej vadnici naj se izvajajo v aktiviranem navideznem okolju. Namestite paket koles, da bomo lahko v virtualnem okolju vgrajevali kolesa.
pip install wheel
3. korak: Prenos in bučka bučke
Izvesti moramo korake za prenos Flask in namestiti Flask po spodnjih korakih.
Zdaj namestite Flask.
pip install flask
Nekateri radi delamo skupaj z najnovejšimi spremembami izvorne kode. Spodnji ukaz lahko uporabimo za namestitev z najnovejšimi spremembami virov Flask.
Naredite začasni imenik.
mkdir tmp
Zdaj namestite Flask iz skladišča Github. Za delovanje spodnjega ukaza morate ostati povezani z internetom.
pip3 install -e git+git@github.com:pallets/flask.git#egg=flask
Oglejte si izhode konzole, da preverite uspešno namestitev. Zdaj preverite, ali imamo dostop do ukazov Flask.
flask --help
Morda boste videli nekaj izjem glede odsotnosti aplikacije Flask. Zanemarite pa tiste, saj nismo ustvarili nobene aplikacije Flask. Naša aplikacija je primerek Flask, ki je ovoj v spletnem okviru Werkzeug in mehanizmu za predloge Jinja.
Orodje
Werkzeug je orodje WSGI. WSGI je le klicna konvencija za posredovanje spletnih strežnikov spletne zahteve do spletnih aplikacij, napisanih v programskem jeziku Python.
Jinja
Predloge so bistveni sklop spletnih razvijalcev. Jinja je popoln in priljubljen predloge za Python. Je zelo izrazit jezik in avtorjem predlogov ponuja robusten nabor orodij.
4. korak: Namestite MongoDB
Sledite spodnjim korakom za namestitev MongoDB. Opisali smo korake za njegovo namestitev v Linux, ki temelji na Debianu. Če uporabljate drug operacijski sistem, odprite povezava in namestite po predvidenem operacijskem sistemu.
Namestite gnupg za uvoz javnega ključa GPG MongoDB.
sudo apt-get install gnupg
Zdaj uvozite ključ s spodnjim ukazom.
wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
Ustvarite datoteko s seznamom virov v skladu z vašo distribucijo Linuxa. Dodali smo seznam virov po Debianu.
echo 'deb http://repo.mongodb.org/apt/debian buster/mongodb-org/4.2 main' | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list
Zaženite ukaz za posodobitev
sudo apt-get update
Zdaj namestite MongoDB z uporabo spodnjega ukaza.
sudo apt-get install -y mongodb-org
Ko je namestitev uspešna, zaženite MongoDB z uporabo spodnjega ukaza.
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 z izdajo spodnje prikazanega ukaza.
sudo systemctl enable mongod
Zdaj preverite, ali se lahko s pomočjo odjemalca mongo povežete s strežnikom MongoDB.
mongo
V lupini mongo poskusite uporabiti pomoč in pokazati ukaze dbs.
Ustvari aplikacijo Flask
Uporabite spodnji ukaz za namestitev flask-appbuilder in mongoengine.
pip install flask-appbuilder pip install mongoengine pip install flask_mongoengine
Ustvarite skeletno aplikacijo z vrednostmi, prikazanimi kot komentarji v spodnjem delčku kode.
flask fab create-app # Give the following values in the command line questionnaire # Application Name: flaskTutorialApp # EngineType : MongoEngine
Videli bomo rezultate, podobne spodnjim.
Your new app name: exampleApp Your engine type, SQLAlchemy or MongoEngine (SQLAlchemy, MongoEngine) (SQLAlchemy): MongoEngine Downloaded the skeleton app, good coding!
Oglejte si postavitev projekta in aplikacije. Spodaj smo prikazali izhod drevesnega ukaza.
Oglejmo si konfiguracijsko datoteko Flask. To je privzeta konfiguracija, ustvarjena kot rezultat zadnjega ukaza. Nekomentiraj Kiborg tema, kot je prikazano spodaj.
# Theme configuration for Cybord=g # these themes are located on static/appbuilder/css/themes # We can create our own and easily use them by placing them on the same dir structure to override #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' # cyborg theme #APP_THEME = 'flatly.css' # flatly theme
Če želite zagnati skeletno aplikacijo, uporabite spodnji ukaz na terminalu.
flask run
Bučka Hello World
Če želite ustvariti svoj prvi program v flaskTutorialApp, odprite datoteko views.py v imeniku aplikacije in dodajte naslednjo kodo. Poiščite izjave o uvozu, podane v datoteki. Dodajte te izjave, če še niso prisotne.
from flask_appbuilder import BaseView, expose from app import appbuilder class HelloWorld(BaseView): ''' This first view of the tutorial ''' route_base = '/hello' @expose('/') def hello(self): return 'Hello, World! from Software Testing Help' # at the end of the file appbuilder.add_view_no_menu(HelloWorld())
Datoteko shranite po dodajanju zgornje izvorne kode. Pojdite v korenski imenik projekta in z spodnjim ukazom zaženite razvojni strežnik bučke.
flask run
Zdaj pojdite na http: // localhost: 5000 / hello / in si oglejte izhodne podatke v brskalniku.
Odpravljanje napak
Trenutno se razvojni strežnik ne izvaja v načinu za odpravljanje napak. Brez načina za odpravljanje napak je težko najti napake v izvorni kodi aplikacije Flask.
Način za odpravljanje napak v bučki povzroči naslednje:
spletne storitve c # vprašanja za intervju
- Način za odpravljanje napak aktivira samodejno ponovno nalaganje. To pomeni, da nam ni treba znova zagnati razvojnega strežnika, potem ko spremenimo izvorno kodo aplikacije.
- Način za odpravljanje napak aktivira razhroščevalec Python. Vrednosti spremenljivk lahko pregledamo med izjemo.
- Način za odpravljanje napak omogoča odpravljanje napak v aplikaciji Flask. Vrednosti različnih spremenljivk lahko preverimo v sejah za odpravljanje napak.
Ustavite razvojni strežnik, če se že izvaja. Za isto lahko uporabite 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 za odpravljanje napak in si jo zapišite.
Zdaj spremenimo zgoraj napisani pogled HelloWorld z naslednjimi vrsticami delčka kode. Upoštevajte, da smo uvedli izjemo po meri.
@expose('/') def hello(self): raise Exception('A custom exception to learn DEBUG Mode') return 'Hello, World! from Software Testing Help'
Pojdite na http: // localhost: 5000 / hello / in videli boste, da je aplikacija povzročila izjemo. Brskalnik prikaže sled sklada, kot je prikazano spodaj.

Poleg tega poglejte konzolo, v kateri se izvaja razvojni strežnik. Ugotovili boste, da se tokrat spremembe v views.py samodejno zaznajo, strežnik za odpravljanje napak pa se sam znova zažene. Zdaj nam ga ni treba znova zagnati.
Konzola bo imela vrstice, kot je prikazano spodaj. PIN za odpravljanje napak si moramo zapisati za pozneje.
* Detected change in 'https://cdn.softwaretestinghelp.com/work/sth/flaskTutorialApp/app/views.py', reloading 2020-06-02 14:59:49,354:INFO:werkzeug: * Detected change in 'https://cdn.softwaretestinghelp.com/work/sth/flaskTutorialApp/app/views.py', reloading * Restarting with stat 2020-06-02 14:59:49,592:INFO:werkzeug: * Restarting with stat * Debugger is active! * Debugger PIN: 150-849-897
Zdaj preverite sled skladov v brskalniku in pojdite na zadnjo vrstico. Kliknite nanjo, da razširite pogled, in kliknite ikono CLI, da odprete lupino v interaktivnem načinu.

Ko jo odprete, boste videli, da bo brskalnik prikazal poziv za kodo za odpravljanje napak. Dajte kodo za odpravljanje napak in kliknite V redu.

Ko nadaljujemo po vnosu PIN za odpravljanje napak, lahko dostopamo do interaktivne lupine.
Do lupine dostopamo znotraj brskalnika in lahko pregledamo vrednosti spremenljivk, da poiščemo vzrok izjeme in napako rešimo na boljši način. Oglejte si enega od primerov, prikazanih na spodnji sliki.

Zdaj spremenite kodo v view.py, kot je prikazano spodaj. Upoštevajte, da smo komentirali vrstico, v kateri je bila postavljena izjema.
@expose('/') def hello(self): # raise Exception('A custom exception to learn DEBUG Mode') return 'Hello, World! from Software Testing Help'
Testiranje aplikacije bučke
Zdaj pa napišite svoj prvi test za aplikacijo Flask, ki jo razvijamo. Najprej namestite PyTest. PyTest je preskusni okvir. Pomaga nam pisati boljšo kodo.
Še več, samo zato, ker lahko med razvojem naših aplikacij pišemo enote, lahko sledimo pristopu TDD. TDD pomeni Test-Driven Development. V naslednjih vajah te serije bomo vedno najprej napisali teste in razvili svoje poglede ali modele.
Namestite PyTest
pip install pytest
Zdaj v imeniku aplikacije ustvarite imenik, imenovan testi, v njem pa datoteko test_hello.py. Napišite svoj prvi enotni test, s katerim bomo preizkusili svoj pogled.
Kopirajte naslednji delček 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 preizkusov uporabite spodnji ukaz pytest. PyTest samodejno zbere teste in rezultate prikaže na standardnem izhodu.

Ustvarite potek dela GitHub
Git Actions uporabljamo za ustvarjanje poteka dela CI / CD za našo vzorčno aplikacijo. Sledite spodnjim korakom za svoj projekt.
1. korak: Pomaknite se na stran repozitorija v GitHubu. Kliknite Git Actions.

2. korak: Pomaknite se navzdol po strani in poiščite obstoječo predlogo poteka dela za paket Python.

3. korak: Nastavite potek dela paketa Python.

4. korak: Ko se odpre konfiguracija poteka dela python-package.yml, jo posodobite na podlagi danih dodatnih vrednosti oznak yaml.
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/mongodb-github-action@1.3.0 with: mongodb-version: ${{ matrix.mongodb-version }} # other values
Našo aplikacijo Flask želimo preizkusiti na najnovejši distribuciji Ubuntu Linux. Poleg operacijskega sistema želimo svoje teste izvajati samo z uporabo Python 3.7 in Python 3.8.
5. korak: Zapišite python-package.yml s posodobljenimi vrednostmi.

6. korak: Oddaja na prejšnji strani nas pripelje do opravil GitActions.

7. korak: (Neobvezno)
Na strani Github Jobs za vzorčno aplikacijo vadnice lahko ustvarimo značko in jo postavimo v datoteko README.md za prikaz stanja izdelave.
Zdaj, ko bodo spremembe dodeljene glavni veji, bo Git Workflow, kot je zapisano v python-package.yml, sledil in se zagnal v Git Actions.
Zaključek
V tej vadnici smo zajeli vse osnovne koncepte od predpogojev do nastavitve poteka dela CI / CD za spletno aplikacijo, razvito z uporabo Flask - ogrodja spletnega razvoja, ki temelji na Pythonu.
Ta vadnica zajema vse potrebne korake, kot so namestitev Pythona, prenos in namestitev Flaska, delo s Flask-Appbuilderjem, testiranje s PyTestom itd., Da začnete s spletnim razvojem z uporabo Pythona. Skupnost spletnega razvoja običajno primerja Flask z drugim priljubljenim ogrodjem spletnega razvoja Python, imenovanim Django.
Te razlike bomo razložili in te okvire tudi primerjali v enem od vadnic v tej seriji.
Priporočeno branje
- Django Vs Flask Vs Node: Kateri okvir izbrati
- Vadnica API Flask s primerom | Razširitev bučke z API-ji
- Postavitev bučke in projekt bučke z načrtom in zagonskim trakom
- Ravnanje z bazo podatkov o bučah - Kako uporabljati bučko z bazo podatkov
- Vzorci za oblikovanje bučk in najboljši postopki za spletne aplikacije
- Predloga bučke, obrazec, pogled in preusmeritev s primeri
- 31 najbolj priljubljenih vprašanj za intervju z Python Flask z odgovori
- Vadnica za Python za začetnike (praktično BREZPLAČNO usposabljanje za Python)