Šajā ievadā Python Flask pamācībā ir izskaidrots, kas ir Flask, Python instalēšana, Virtualenv, Flask Hello World piemērs ar sadaļu par koda piemēriem, atkļūdošanu un testēšanu:
Tīmekļa vietņu izstrāde ir vairāk māksla nekā prasme. Tā prasa pacietību un centību, kā arī neatlaidību, drosmi un centību, lai radītu to, kas ir nepieciešams, lai tā būtu patiesi veiksmīga. Mūsdienās ir svarīgi, lai apmācāmie pēc iespējas ātrāk apgūtu ātrumu.
Mēs esam izveidojuši šo Python Flask pamācību, lai studenti varētu apgūt un īstenot vienkāršu un sarežģītu tīmekļa programmēšanu, izmantojot Python 3.
Šī Python Flask pamācība ir vairāk līdzīga flask pamācībai iesācējiem, kas aptvers Python, Virtualenv un citu būtisku paku instalēšanu. Šajā pamācību sērijā mēs arī instalēsim Flask kopā ar citiem nepieciešamajiem Flask spraudņiem. Mēs esam iekļāvuši arī sadaļu par koda atkļūdošanu, testēšanu un nepārtrauktu integrāciju, izmantojot Git Actions.
Mācību materiālu saraksts šajā flakona sērijā
Mācību pamācība Nr. 1: Python Flask Tutorial - Ievads Flask iesācējiem
Apmācība Nr. 2: Flask šablons, forma, skats un pāradresācija ar piemēriem
Mācību pamācība #3: Flask datubāzes apstrāde - Kā lietot Flask ar datubāzi
Mācību pamācība #4: Flask App un Flask projekta izkārtojums ar Blueprint & amp; Bootstrap
Mācību pamācība #5: Flask dizaina paraugi un labākā prakse tīmekļa lietojumprogrammām
Mācību pamācība #6: Flask API apmācība ar piemēru
Mācību pamācība #7: Django Vs Flask Vs Node: kuru ietvaru izvēlēties
Mācību pamācība #8: Top 31 Populārākie 31 Python Flask intervijas jautājumi ar atbildēm
Kas ir flakons
Flask ir tīmekļa izstrādes ietvars. Tas ir ietvars ar iebūvētu izstrādes serveri un atkļūdošanas programmu.
Flask ietvars pats par sevi atšķiras no citiem arhetipiem, jo tas ļauj tīmekļa izstrādātājiem būt elastīgiem un ērti pielāgoties programmatūras izstrādes kopienā bieži publicētajām izmaiņām.
Kādam nolūkam izmanto flakonu
Mēs izmantojam Flask ietvaru tīmekļa lietojumprogrammu izstrādei Python programmēšanas valodā. Tas integrējas ar citiem trešo pušu pakalpojumiem un API, lai piešķirtu bagātību un jēgu izstrādātajai lietojumprogrammai. Flask pamatkoncepcijas ir vienkāršas, un tam ir maza izmēra lietojumprogramma.
Sāksim ar šo Python Flask pamācību, lai izprastu tīmekļa izstrādi ar Flask GitHub repozitorija palīdzību. Tomēr, pirms turpināt, lūdzu, klonējiet projektu no Github, lai viegli sekotu līdzi aplūkotajiem koda piemēriem.
Priekšnosacījumi
Izņemot šajā sadaļā minētos virsrakstus, mēs iesakām izveidot Github kontu. Turpināsim ar tālāk minētajiem priekšnoteikumu soļiem.
1. solis: Instalējiet Python
Pārbaudiet, vai jums ir instalēts Python 3. Ja nav, lejupielādējiet Python 3 no šejienes un instalējiet to atbilstoši savai operētājsistēmai.
2. solis: Python virtuālās vides izveide
Izveidojiet virtuālo vidi, izmantojot tālāk norādīto komandu.
python3 -m venv venv
Izmantojiet tālāk norādīto komandu, lai aktivizētu Python virtuālo vidi.
source venv/bin/activate
Zemāk ir dots virtuālās vides aktivizēšanas un deaktivizēšanas piemērs.
Visām turpmākajām komandām šajā pamācībā jāstrādā aktivizētā virtuālajā vidē. Instalējiet riteņu pakotni, lai mēs varētu veidot riteņus virtuālajā vidē.
pip instalēt ritenis
3. solis: Flakas lejupielāde un ievietošana
Mums ir nepieciešams veikt Flask lejupielādes soļus un instalēt Flask, izmantojot tālāk norādītos soļus.
Tagad instalējiet Flask.
pip instalēt flask
Dažiem no mums patīk strādāt kopā ar jaunākajām avota koda izmaiņām. Mēs varam izmantot zemāk doto komandu, lai instalētu ar jaunākajām izmaiņām Flask avotos.
Izveidojiet pagaidu direktoriju.
mkdir tmp
Tagad instalējiet Flask no Github repozitorija. Jums ir jābūt pieslēgtam internetam, lai turpmāk minētā komanda darbotos.
pip3 install -e [email protected]:pallets/flask.git#egg=flask
Aplūkojiet konsoles izvades, lai pārbaudītu, vai instalēšana ir veiksmīga. Tagad pārbaudiet, vai mēs varam piekļūt Flask komandām.
flask --help
Jūs varētu redzēt dažus izņēmumus par Flask lietojumprogrammas neesamību. Tomēr neņemiet tos vērā, jo mēs neesam izveidojuši nekādu Flask lietojumprogrammu. Mūsu lietojumprogramma ir Flask gadījums, kas ir ietvars Werkzeug tīmekļa ietvarstruktūrai un Jinja templēšanas dzinējam.
Werkzeug
Werkzeug ir WSGI rīku komplekts. WSGI ir tikai izsaukuma konvencija tīmekļa serveriem, lai pārsūtītu tīmekļa pieprasījumi tīmekļa lietojumprogrammām, kas rakstītas Python programmēšanas valodā.
Jinja
Šablonu veidošana ir būtiska tīmekļa izstrādātāju prasmju kopums. Jinja ir pilnībā aprīkots un populārs Python šablonu veidošanas dzinējs. Tā ir diezgan izteiksmīga valoda un nodrošina spēcīgu rīku kopumu šablonu autoriem.
4. solis: Instalējiet MongoDB
Lai instalētu MongoDB, izpildiet tālāk norādītās darbības. Mēs esam aprakstījuši darbības, lai instalētu to Debian Linux operētājsistēmā. Ja izmantojat citu operētājsistēmu, atveriet saiti un instalējiet to atbilstoši paredzētajai operētājsistēmai.
Instalējiet gnupg, lai importētu MongoDB publisko GPG atslēgu.
sudo apt-get instalēt gnupg
Tagad importējiet atslēgu, izmantojot tālāk norādīto komandu.
wget -qO - //www.mongodb.org/static/pgp/server-4.2.asc
Izveidojiet avotu saraksta failu atbilstoši savai Linux izplatīšanai. Mēs esam pievienojuši avotu sarakstu atbilstoši Debian.
echo "deb //repo.mongodb.org/apt/debian buster/mongodb-org/4.2 main"
Palaist atjaunināšanas komandu
sudo apt-get update
Tagad instalējiet MongoDB, izmantojot tālāk norādīto komandu.
sudo apt-get install -y mongodb-org
Kad instalēšana ir veiksmīga, palaidiet MongoDB, izmantojot tālāk norādīto komandu.
sudo systemctl start mongod
Pārbaudiet MongoDB statusu, izmantojot tālāk norādīto komandu.
sudo systemctl statuss mongod
Tagad pārliecinieties, ka mongod automātiski startē pēc sistēmas pārstartēšanas, izdodot tālāk parādīto komandu.
sudo systemctl enable mongod
Tagad pārbaudiet, vai varat izveidot savienojumu ar MongoDB serveri, izmantojot mongo klientu.
mongo
Mongo čaulā mēģiniet izmantot palīdzības un show dbs komandas.
Flask lietotnes izveide
Izmantojiet tālāk norādīto komandu, lai instalētu flask-appbuilder un mongoengine.
pip install flask-appbuilder pip install mongoengine pip install flask_mongoengine
Izveidojiet lietojumprogrammas skeletu ar vērtībām, kas parādītas kā komentāri tālāk dotajā koda fragmentā.
flask fab create-app # Uzdodiet šādas vērtības komandrindas anketā # Pieteikuma nosaukums: flaskTutorialApp # EngineType : MongoEngine
Mēs redzēsim izvades rezultātu, kas ir līdzīgs zemāk dotajam.
Jūsu jaunās lietotnes nosaukums: exampleApp Jūsu dzinēja tips, SQLAlchemy vai MongoEngine (SQLAlchemy, MongoEngine) [SQLAlchemy]: MongoEngine Lejupielādēts lietotnes skelets, laba kodēšana!
Aplūkojiet projekta un lietotnes izkārtojumu. Turpmāk ir parādīta koka komandas izvades komanda.
Aplūkosim Flask konfigurācijas failu. Tas ir noklusējuma konfigurācijas fails, kas izveidots kā pēdējās komandas rezultāts. Atceliet komentāru Kiborgi tēma, kā parādīts turpmāk.
# Cybord=g tēmas konfigurācija # šīs tēmas atrodas static/appbuilder/css/themes # Mēs varam izveidot savu un viegli izmantot tos, ievietojot tos tajā pašā dir struktūrā, lai aizstātu #APP_THEME = "bootstrap-theme.css" # noklusējuma bootstrap #APP_THEME = "cerulean.css" # cerulean #APP_THEME = "amelia.css" # amelia tēma #APP_THEME = "cosmo.css" # cosmo tēma APP_THEME = "cyborg.css" # cyborgtēma #APP_THEME = "flatly.css" # flatly tēma
Lai palaistu skeleta lietotni, terminālī izmantojiet tālāk norādīto komandu.
kolbas palaišana
Flask Hello World
Lai izveidotu savu pirmo programmu failā flaskTutorialApp, atveriet failu views.py, kas atrodas lietotnes direktorijā, un pievienojiet šādu kodu. Meklējiet importēšanas paziņojumus, kas doti failā. Pievienojiet šos paziņojumus, ja tie vēl nav pievienoti.
from flask_appbuilder import BaseView, expose from app import appbuilder klase HelloWorld(BaseView): """" Šis pirmais mācību programmas skats """ route_base = "/hello" @expose("/") def hello(self): return "Hello, World! from Software Testing Help" # faila beigās appbuilder.add_view_no_menu(HelloWorld())
Pēc iepriekšminētā pirmkoda pievienošanas saglabājiet failu. Dodieties uz projekta saknes direktoriju un izmantojiet tālāk norādīto komandu, lai palaistu Flask izstrādes serveri.
kolbas palaišana
Tagad dodieties uz //localhost:5000/hello/, lai pārlūkprogrammā redzētu izvades rezultātu.
Tīklošana
Pašlaik izstrādes serveris nedarbojas atkļūdošanas režīmā. Bez atkļūdošanas režīma ir grūti atrast kļūdas Flask lietojumprogrammas avota kodā.
Debugēšanas režīms programmā Flask rada šādus rezultātus:
- Debug režīms aktivizē automātisko pārlādēšanas funkciju. Tas nozīmē, ka pēc izmaiņu veikšanas lietojumprogrammas avota kodā mums nav nepieciešams restartēt izstrādes serveri.
- Debug režīms aktivizē Python atkļūdošanas programmu. Izņēmuma laikā mēs varam pārbaudīt mainīgo vērtības.
- Debugēšanas režīms ļauj atkļūdošanas režīmā atkļūdošanas sesijā varam pārbaudīt dažādu mainīgo vērtības.
Apstādiniet izstrādes serveri, ja tas jau darbojas. Lai to izdarītu, varat izmantot kombināciju CTRL + C vai taustiņu pārtraukšanu.
Lai iespējotu atkļūdošanas režīmu un uz laiku palaistu izstrādes serveri, izmantojiet šādu kodu.
FLASK_ENV=development flask run
Meklējiet konsoles logrīkā Debugger PIN kodu un atzīmējiet to.
Tagad izmainīsim iepriekš rakstīto HelloWorld skatu ar šādām koda fragmenta rindiņām. Ievērojiet, ka esam ieviesuši pielāgotu izņēmumu.
@expose("/") def hello(self): raise Exception("Pielāgots izņēmums, lai apgūtu DEBUG režīmu") return "Hello, World! from Software Testing Help"
Pārejiet uz //localhost:5000/hello/, un redzēsiet, ka lietojumprogramma ir radījusi izņēmumu. Pārlūkprogrammā tiek parādīta kaudzes izsekošana, kā parādīts tālāk.
![](/wp-content/uploads/guides/iae5sr2a76-3.png)
Turklāt apskatiet konsoli, kurā darbojas izstrādes serveris. Jūs redzēsiet, ka šoreiz izmaiņas views.py tiek automātiski atpazītas, un atkļūdošanas serveris tiek restartēts pats no sevis. Tagad mums tas nav manuāli jārestartē.
Konsolei tiks parādītas rindas, kā parādīts tālāk. Mums ir nepieciešams pierakstīt atkļūdošanas PIN kodu, lai to varētu izmantot vēlāk.
* Atklāja izmaiņas '/work/sth/flaskTutorialApp/app/views.py', ielādē atkārtoti 2020-06-02 14:59:49,354:INFO:werkzeug: * Atklāja izmaiņas '/work/sth/flaskTutorialApp/app/views.py', ielādē atkārtoti * Restartē ar stat 2020-06-02 14:59:49,592:INFO:werkzeug: * Restartē ar stat * Debugeris ir aktīvs! * Debugera PIN: 150-849-897
Tagad pārlūkā pārbaudiet kaudzes izsekojamību un dodieties uz pēdējo rindu. Noklikšķiniet uz tās, lai paplašinātu tās skatu, un noklikšķiniet uz CLI ikonas, lai atvērtu čaulu interaktīvā režīmā.
![](/wp-content/uploads/guides/iae5sr2a76-4.png)
Kad to atvērsiet, redzēsiet, ka pārlūkprogrammā tiks parādīta prasība ievadīt atkļūdošanas PIN kodu. Ierakstiet atkļūdošanas PIN kodu un noklikšķiniet uz Labi.
![](/wp-content/uploads/guides/iae5sr2a76-5.png)
Kad pēc atkļūdošanas PIN koda piešķiršanas mēs turpinām darbu, varam piekļūt interaktīvajam apvalkam.
Mēs piekļūstam čaulā no pārlūkprogrammas un varam pārbaudīt mainīgo vērtības, lai atrastu izņēmuma cēloni un labāk apstrādātu kļūdu. Lūdzu, apskatiet vienu no zemāk attēlā redzamajiem piemēriem.
![](/wp-content/uploads/guides/iae5sr2a76-6.png)
Tagad mainiet kodu view.py, kā parādīts tālāk. Ņemiet vērā, ka mēs esam komentējuši rindā, kurā bija izņēmums.
@expose("/") def hello(self): # raise Exception("Pielāgots izņēmums, lai apgūtu DEBUG režīmu") return "Hello, World! from Software Testing Help"
Flask lietojumprogrammas testēšana
Tagad uzrakstīsim savu pirmo testu Flask lietojumprogrammai, kuru mēs izstrādājam. Vispirms instalējiet PyTest. PyTest ir testēšanas ietvars. Tas palīdz mums rakstīt labāku kodu.
Turklāt tikai tāpēc, ka mēs varam rakstīt vienības testus, izstrādājot lietojumprogrammas, ir iespējams ievērot TDD pieeju. TDD ir saīsinājums no Test-Driven Development (testiem vadīta izstrāde). Turpmākajās šīs sērijas pamācībās mēs vienmēr vispirms rakstīsim testus un pēc tam izstrādāsim savus skatījumus vai modeļus.
Instalēt PyTest
pip instalēt pytest
Tagad izveidojiet direktoriju ar nosaukumu tests lietotnes direktorijā un tajā izveidojiet failu ar nosaukumu test_hello.py. Uzrakstīsim mūsu pirmo vienības testu, lai pārbaudītu mūsu skatu.
Kopējiet šādu koda fragmentu un ielīmējiet to 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
Izmantojiet tālāk norādīto pytest komandu, lai palaistu testus. PyTest automātiski apkopo testus un parāda rezultātus standarta izvades logā.
![](/wp-content/uploads/guides/iae5sr2a76-7.png)
GitHub darbplūsmas izveide
Mēs izmantojam Git Actions, lai izveidotu CI/CD darbplūsmu mūsu parauga lietojumprogrammai. Veiciet tālāk aprakstītās darbības savam projektam.
1. solis: dodieties uz GitHub repozitorija lapu. Noklikšķiniet uz Git darbības.
![](/wp-content/uploads/guides/iae5sr2a76-8.png)
2. solis: Ritiniet lapu uz leju un atrodiet esošo Python paketes darba plūsmas veidni.
![](/wp-content/uploads/guides/iae5sr2a76-9.png)
3. solis: Python paketes iestatīšana Darba plūsma.
![](/wp-content/uploads/guides/iae5sr2a76-10.png)
4. solis: Kad atvērta python-package.yml darbplūsmas konfigurācija, atjauniniet to, pamatojoties uz dotajām yaml papildu tagu vērtībām.
nosaukums: flaskTutorialApp uzdevumi: build: runs-on: ubuntu-latest stratēģija: matrica: python-versija: [3.7, 3.8] mongodb-versija: [4.2] soļi: - nosaukums: Start MongoDB izmanto: supercharge/[email protected] ar: mongodb-versija: ${{ matrix.mongodb-version }} # citas vērtības
Mēs vēlamies pārbaudīt mūsu Flask lietojumprogrammu jaunākajā Ubuntu Linux izplatījumā. Papildus operētājsistēmai mēs vēlamies veikt testus, izmantojot tikai Python 3.7 un Python 3.8.
Solis 5: Saistīt python-package.yml ar atjauninātajām vērtībām.
![](/wp-content/uploads/guides/iae5sr2a76-11.png)
6. solis: Iepriekšējā lappusē veiktā nodošana mūs aizved uz GitActions darbvietām.
![](/wp-content/uploads/guides/iae5sr2a76-12.png)
7. solis: [Pēc izvēles]
Github darbvietu lapā, kas paredzēta mācību programmas paraugam, mēs varam izveidot nozīmīti un novietot to README.md failā, lai parādītu izveides statusu.
Tagad, kad vien izmaiņas tiek nodotas galvenajam atzaram, Git darbplūsma, kā rakstīts python-package.yml, tiks ievērota un palaista uz Git darbībām.
Secinājums
Šajā pamācībā mēs esam aplūkojuši visus pamatjēdzienus, sākot no priekšnosacījumiem līdz CI/CD darbplūsmas iestatīšanai tīmekļa lietojumprogrammai, kas izstrādāta, izmantojot Flask - Python bāzētu tīmekļa izstrādes ietvaru.
Šajā pamācībā ir aprakstīti visi nepieciešamie soļi, piemēram, Python instalēšana, & lejupielādēšana, Flask instalēšana, darbs ar Flask-Appbuilder, testēšana ar PyTest u. c., lai sāktu tīmekļa izstrādi, izmantojot Python. Tīmekļa vietņu izstrādātāju kopiena parasti salīdzina Flask ar citu populāru Python tīmekļa izstrādes ietvaru Django.
Mēs izskaidrosim šīs atšķirības un salīdzināsim šos ietvarus kādā no šīs sērijas pamācībām.