Kennsla #5: Flöskuhönnunarmynstur og bestu starfsvenjur fyrir vefforrit
Kennsla #6: Flask API Kennsla með dæmi
Þessi kynningarkennsla í Python Flask útskýrir hvað er Flask, uppsetningu á Python, Virtualenv, Flask Hello World dæmi með kafla um kóðadæmi, villuleit og prófun:
Þróun vefsíðna er meira af list en færni. Það krefst þolinmæði og dugnaðar, ásamt þrautseigju, hugrekki og hollustu til að búa til það sem þarf til að það verði raunverulegur árangur. Þessa dagana er nauðsynlegt fyrir nemendur að komast í hraða eins fljótt og auðið er.
Við höfum búið til þessa Python Flask kennslu fyrir nemendur til að komast á hraða og innleiða einfalda og flókna vefforritun með Python 3 .
Þessi Python Flask kennsla er meira eins og flaska byrjendanámskeið, sem mun fjalla um uppsetningu á Python, Virtualenv og öðrum nauðsynlegum pakka. Í þessari röð kennslu munum við einnig setja upp Flask ásamt öðrum nauðsynlegum Flask viðbótum. Við höfum einnig sett inn kafla um kembiforrit, prófun og stöðuga samþættingu með því að nota Git Actions.
Listi yfir kennsluefni í þessari flösku röð
Kennsla #1: Python Flask Kennsla – Kynning á flöskunni fyrir byrjendur
Kennsluefni #2: Flöskusniðmát, eyðublað, útsýni og endurvísun með dæmum
Kennsla #3: Meðhöndlun flöskugagnagrunns – Hvernig á að nota flösku með gagnagrunni
Kennsla #4: Flaskaforrit og flöskuverkefnisútlit með teikningu &nefnd skref í forsendunum.
Skref 1: Settu upp Python
Athugaðu hvort þú hafir sett upp Python 3 eða ekki. Ef ekki, þá skaltu hlaða niður Python 3 héðan og setja það upp samkvæmt stýrikerfinu þínu.
Skref 2: Búðu til Python sýndarumhverfi
Búðu til sýndarumhverfi með því að nota neðan skipun.
python3 -m venv venv
Notaðu skipunina hér að neðan til að virkja Python sýndarumhverfið.
source venv/bin/activate
Við höfum gefið dæmi um virkjun og óvirkjun sýndarumhverfis hér að neðan.
Allar síðari skipanir í þessari kennslu ættu að keyra í virku sýndarumhverfi. Settu upp hjólpakkann þannig að við getum byggt hjól inni í sýndarumhverfinu.
pip install wheel
Skref 3: Flask Download And Insall
Við þurfum að framkvæma flösku niðurhalsskrefin og settu upp Flask með eftirfarandi skrefum.
Settu nú upp Flask.
pip install flask
Sum okkar finnst gaman að vinna með nýjustu frumkóðabreytingunum. Við getum notað skipunina hér að neðan til að setja upp með nýjustu breytingum á upptökum Flask.
Búa til bráðabirgðaskrá.
mkdir tmp
Setjaðu nú upp Flask úr Github geymslunni. Þú þarft að vera tengdur við internetið til að skipunin hér að neðan virki.
pip3 install -e [email protected]:pallets/flask.git#egg=flask
Skoðaðu úttak stjórnborðsins til að athuga hvernig uppsetningin heppnaðist. Athugaðu nú hvort við höfum aðgang að flöskuskipunum.
flask --help
Þú gætir séð nokkrar undantekningar varðandi fjarveru flöskuumsókn. Hins vegar vanrækslu þá þar sem við höfum ekki búið til neitt Flask app. Appið okkar er dæmi um Flask, sem er umbúðir á Werkzeug veframma og Jinja sniðmátsvél.
Werkzeug
Werkzeug er WSGI verkfærakista. WSGI er aðeins útkallsstefna fyrir vefþjóna til að senda vefbeiðnir til vefforrita sem eru skrifuð á Python forritunarmáli.
Jinja
Sniðmát er nauðsynleg hæfileikakerfi vefhönnuða. Jinja er fullkomin og vinsæl sniðmátavél fyrir Python. Það er nokkuð svipmikið tungumál og veitir sniðmátshöfundum öflugt verkfæri.
Skref 4: Settu upp MongoDB
Fylgdu neðangreindum skrefum til að setja upp MongoDB. Við höfum lýst skrefunum til að setja það upp í Debian byggt Linux. Ef þú ert að nota annað stýrikerfi skaltu opna tengilinn og setja upp í samræmi við fyrirhugað stýrikerfi.
Settu upp gnupg til að flytja inn MongoDB opinberan GPG lykil.
sudo apt-get install gnupg
Flyttu nú inn lykilinn með því að nota skipunina hér að neðan.
wget -qO - //www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
Búðu til heimildaskrána samkvæmt Linux dreifingu þinni. Við höfum bætt við listanum yfir heimildir samkvæmt Debian.
echo "deb //repo.mongodb.org/apt/debian buster/mongodb-org/4.2 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list
Keyra uppfærsluskipun
sudo apt-get update
Setjið nú upp MongoDB með skipuninni hér að neðan.
sudo apt-get install -y mongodb-org
Þegar uppsetningin hefur heppnast skaltu ræsa MongoDB með því að nota skipunina hér að neðan.
sudo systemctl start mongod
Athugaðu stöðu MongoDB með skipuninnihér að neðan.
sudo systemctl status mongod
Gakktu úr skugga um að mongod byrji sjálfkrafa við endurræsingu kerfisins með því að gefa út skipunina sem sýnd er hér að neðan.
sudo systemctl enable mongod
Athugaðu nú hvort þú getur tengdu við MongoDB þjóninn með mongo biðlara.
mongo
Í mongo skelinni skaltu prófa að nota hjálpina og sýna dbs skipanir.
Búa til Flask app
Notaðu skipunina hér að neðan til að setja upp flask-appbuilder og mongoengine.
pip install flask-appbuilder pip install mongoengine pip install flask_mongoengine
Búðu til beinagrindapp með gildunum sem sýnd eru sem athugasemdir í kóðabútnum hér að neðan.
flask fab create-app # Give the following values in the command line questionnaire # Application Name: flaskTutorialApp # EngineType : MongoEngine
Við munum sjá úttakið svipað og hér að neðan.
Your new app name: exampleApp Your engine type, SQLAlchemy or MongoEngine (SQLAlchemy, MongoEngine) [SQLAlchemy]: MongoEngine Downloaded the skeleton app, good coding!
Kíktu á útlit verkefnisins og appsins. Við höfum sýnt úttak tréskipunarinnar hér að neðan.
Við skulum skoða Flask stillingarskrána. Það er sjálfgefin stilling sem myndast sem afleiðing af síðustu skipun. Uncomment Cyborg þema, eins og sýnt er hér að neðan.
# 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
Til að keyra beinagrind appið, notaðu skipunina hér að neðan á flugstöðinni.
flask run
Flask Hello World
Til að búa til fyrsta forritið þitt í flaskTutorialAppinu skaltu opna skrána views.py undir forritaskránni og bæta við eftirfarandi kóða. Leitaðu að innflutningsyfirlýsingum sem gefnar eru upp í skránni. Bættu þessum fullyrðingum við ef þær eru ekki þegar til staðar.
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())
Vistaðu skrána eftir að ofangreindum frumkóða hefur verið bætt við. Farðu í rótarskrá verkefnisins og notaðu skipunina hér að neðan til að keyra þróunarþjón Flasksins.
flask run
Farðu nú á //localhost:5000/hello/ til að sjá úttakið ívafranum.
Villuleit
Eins og er er þróunarþjónninn ekki í gangi í villuleitarstillingunni. Án villuleitarhams er erfitt að finna villurnar í frumkóða Flask-forritsins.
Kembiforrit í Flask leiðir til eftirfarandi:
- Villuleitarstilling virkjar Sjálfvirkt endurhlaðatæki. Það þýðir að við þurfum ekki að endurræsa þróunarþjóninn eftir að við gerum breytingar á frumkóða forritsins.
- Kembiforrit virkjar Python kembiforritið. Við getum skoðað gildi breyta meðan á undantekningu stendur.
- Kembiforrit gerir kembiforrit í Flask kleift. Við getum athugað gildi ýmissa breyta í villuleitarlotum.
Stöðva þróunarþjóninn ef hann er þegar í gangi. Þú getur notað CTRL + C eða lyklaborðsrof til að gera það sama.
Notaðu eftirfarandi kóða til að virkja villuleitarstillinguna og keyra þróunarþjóninn tímabundið.
FLASK_ENV=development flask run
Leita stjórnborðið fyrir kembiforritið og skráið það.
Nú skulum við breyta ofangreindu HelloWorld útsýni með eftirfarandi línum af kóðabútinum. Taktu eftir að við höfum innleitt sérsniðna undantekningu.
@expose("/") def hello(self): raise Exception("A custom exception to learn DEBUG Mode") return "Hello, World! from Software Testing Help"
Farðu á //localhost:5000/hello/ og þú munt sjá að forritið hefur valdið undantekningu. Vafrinn sýnir staflasporið, eins og sýnt er hér að neðan.
![](/wp-content/uploads/guides/iae5sr2a76-3.png)
Líktu ennfremur á stjórnborðið þar sem þróunarþjónninn er í gangi. Þú munt komast að því að í þetta skiptiðbreytingar á views.py finnast sjálfkrafa og villuleitarþjónninn endurræsir sjálfan sig. Nú þurfum við ekki að endurræsa hana handvirkt.
Leikborðið mun hafa línur, eins og sýnt er hér að neðan. Við þurfum að skrá niður villuleitar PIN-númerið fyrir síðar.
* Detected change in '/work/sth/flaskTutorialApp/app/views.py', reloading 2020-06-02 14:59:49,354:INFO:werkzeug: * Detected change in '/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
Athugaðu nú staflasporið í vafranum og farðu í síðustu línu. Smelltu á það til að stækka sýn þess og smelltu á CLI táknið til að opna skelina í gagnvirkum ham.
![](/wp-content/uploads/guides/iae5sr2a76-4.png)
Þegar þú hefur opnað hana muntu sjá að vafrinn mun sýna hvetja um villuleitar PIN. Gefðu villuleitar-PIN-númerið og smelltu á OK.
![](/wp-content/uploads/guides/iae5sr2a76-5.png)
Þegar við höldum áfram eftir að hafa gefið upp villuleitar-PIN-númerið, getum við fengið aðgang að gagnvirku skelinni.
Við fáum aðgang að skelinni innan úr vafranum og getur skoðað gildi breyta til að finna orsök Undantekningarinnar og meðhöndla villuna á betri hátt. Vinsamlegast skoðaðu eitt af dæmunum sem sýnd eru á myndinni hér að neðan.
![](/wp-content/uploads/guides/iae5sr2a76-6.png)
Breyttu nú kóðanum í view.py, eins og sýnt er hér að neðan. Athugaðu að við höfum gert athugasemdir við línuna sem var með upphleypta undantekningu.
@expose("/") def hello(self): # raise Exception("A custom exception to learn DEBUG Mode") return "Hello, World! from Software Testing Help"
Prófun á flöskuforritinu
Nú skulum við skrifa fyrsta prófið okkar fyrir Flaskforritið sem við erum að þróa. Fyrst skaltu setja upp PyTest. PyTest er prófunarrammi. Það hjálpar okkur að skrifa betri kóða.
Þar að auki, bara vegna þess að við getum skrifað einingapróf á meðan við erum að þróa forritin okkar, þá er hægt að fylgja TDD nálguninni. TDD stendur fyrir Test-Driven Development. Í síðari kennsluefni okkar umþessari röð, munum við alltaf skrifa próf fyrst og þróa skoðanir okkar eða líkön.
Setja upp PyTest
pip install pytest
Búaðu til möppu sem heitir próf inni í app skránni og í því búa til skrá sem heitir test_hello.py. Við skulum skrifa fyrsta einingaprófið okkar til að prófa skoðun okkar.
Afritu eftirfarandi kóðabút og límdu hann inn í 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
Notaðu pytest skipunina fyrir neðan til að keyra prófunum. PyTest safnar prófunum sjálfkrafa og sýnir niðurstöðurnar á stöðluðu úttakinu.
![](/wp-content/uploads/guides/iae5sr2a76-7.png)
Búðu til GitHub verkflæði
Við notum Git Actions til að búa til CI/CD verkflæði fyrir sýnishornsforritið okkar. Fylgdu neðangreindum skrefum fyrir verkefnið þitt.
Skref 1: Farðu á geymslusíðuna á GitHub. Smelltu á Git Actions.
![](/wp-content/uploads/guides/iae5sr2a76-8.png)
Skref 2: Skrunaðu niður á síðunni og finndu fyrirliggjandi verkflæðissniðmát fyrir Python pakka.
![](/wp-content/uploads/guides/iae5sr2a76-9.png)
Skref 3: Settu upp Python pakkann Workflow.
![](/wp-content/uploads/guides/iae5sr2a76-10.png)
Skref 4: Þegar python-package.yml vinnuflæðisstillingin opnast skaltu uppfæra hana út frá uppgefnu yaml viðbótar merkjagildi.
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
Við viljum prófa Flask forritið okkar á nýjustu Ubuntu Linux dreifingunni. Til viðbótar við stýrikerfið viljum við keyra prófin okkar eingöngu með Python 3.7 og Python 3.8.
Skref 5: Sendu python-package.yml með uppfærðum gildum.
![](/wp-content/uploads/guides/iae5sr2a76-11.png)
Skref 6: Skuldbindingin á fyrri síðu fer með okkur í GitActionsstörf.
![](/wp-content/uploads/guides/iae5sr2a76-12.png)
Skref 7: [Valfrjálst]
Á Github Jobs síðunni fyrir sýnishorn kennsluforritsins getum við búið til merki og staðsetja það á README.md skránni til að sýna byggingarstöðu.
Nú, í hvert skipti sem breytingarnar eru skuldbundnar til aðalútibúsins, verður Git Workflow, eins og skrifað er í python-package.yml, fylgt eftir og keyrt á Git Actions .
Niðurstaða
Í þessari kennslu höfum við farið yfir öll grunnhugtök frá forsendum til uppsetningar á CI/CD verkflæði fyrir vefforrit sem þróað er með Flask – Python-undirstaða vefþróunarramma.
Þessi kennsla fjallar um öll nauðsynleg skref eins og uppsetningu Python, niðurhal & setja upp Flask, vinna með Flask-Appbuilder, prófa með PyTest o.s.frv. til að byrja með vefþróun með Python. Vefþróunarsamfélagið ber venjulega Flask saman við annan vinsælan Python vefþróunarramma sem kallast Django.
Við munum útskýra þennan mun og einnig bera saman þessa ramma í einu af námskeiðunum í þessari röð.