See sissejuhatav Python Flask õpetus selgitab, mis on Flask, Pythoni paigaldamine, Virtualenv, Flask Hello World näide koos koodinäidete, silumise ja testimise osaga:
Veebilehe arendamine on pigem kunst kui oskus. See nõuab kannatlikkust ja hoolsust, koos visaduse, julguse ja pühendumisega, et luua see, mis on vajalik, et see oleks tõeline edu. Tänapäeval on oluline, et õppijad jõuaksid võimalikult kiiresti kiiruseni.
Oleme loonud selle Python Flask õpetuse, et õpilased saaksid kiirendada ja rakendada nii lihtsat kui ka keerulist veebiprogrammeerimist Python 3 abil.
See Python Flask õpetus on pigem Flaski algaja õpetus, mis hõlmab Pythoni, Virtualenv ja teiste oluliste pakettide paigaldamist. Selles õpetussarjas paigaldame ka Flaski koos teiste vajalike Flask-pistikprogrammidega. Oleme lisanud ka koodi silumise, testimise ja pideva integreerimise osa, kasutades Git Actions'i.
Selle Flask-sarja õpetuste nimekiri
Tutorial #1: Python Flask Tutorial - Sissejuhatus Flask'ile algajatele
Tutorial #2: Flask Mall, vorm, vaade ja ümbersuunamine näidetega
Tutorial #3: Flask andmebaasi käsitlemine - Kuidas kasutada Flask'i andmebaasiga
Tutorial #4: Flask App ja Flask projekti paigutus Blueprint &; Bootstrapiga
Tutorial #5: Flask disainimustrid ja parimad praktikad veebirakenduste jaoks
Tutorial #6: Flask API õpetus koos näitega
Õpetus #7: Django vs Flask vs Node: Milline raamistik valida
Tutorial #8: Top 31 populaarset Python Flask intervjuu küsimused koos vastustega
Mis on Flask
Flask on veebiarenduse raamistik. See on raamistik, millel on sisseehitatud arendusserver ja silumisprogramm.
Flask raamistik iseenesest erineb teistest arhetüüpidest, kuna see võimaldab veebiarendajatel olla paindlik ja mugavalt kohaneda tarkvaraarenduse valdkonnas sageli avaldatud muudatustega.
Milleks kasutatakse Flaski
Me kasutame Python programmeerimiskeeles veebirakenduste arendamiseks Flask raamistikku. See integreerub teiste kolmandate osapoolte teenuste ja API-dega, et anda arendatavale rakendusele rikkust ja tähendust. Flask'i põhimõisted on lihtsad ja see on väikese jalajäljega.
Alustame selle Python Flask õpetusega, et mõista veebiarendust Flask GitHubi repositooriumi abil. Enne jätkamist kloonige siiski projekt Githubist, et arutada koodinäiteid hõlpsamini jälgida.
Eeltingimused
Lisaks käesolevas punktis mainitud rubriikidele soovitame luua Githubi konto. Jätkame allpool mainitud sammudega eeltingimustes.
Samm 1: Pythoni installimine
Kontrollige, kas teil on Python 3 installeeritud või mitte. Kui ei ole, siis laadige Python 3 siit alla ja installige see vastavalt oma operatsioonisüsteemile.
2. samm: Pythoni virtuaalse keskkonna loomine
Looge virtuaalne keskkond, kasutades alltoodud käsku.
python3 -m venv venv
Pythoni virtuaalse keskkonna aktiveerimiseks kasutage alltoodud käsku.
allikas venv/bin/activate
Allpool on toodud näide virtuaalse keskkonna aktiveerimise ja deaktiveerimise kohta.
Kõik edasised käsud selles õpetuses peaksid käivituma aktiveeritud virtuaalses keskkonnas. Installige rattapakett, et saaksime rattaid ehitada virtuaalses keskkonnas.
pip install ratas
3. samm: Flaski allalaadimine ja sisestamine
Me peame sooritama Flaski allalaadimise sammud ja paigaldama Flaski, kasutades allpool toodud samme.
Nüüd paigaldage Flask.
pip install flask
Mõnele meist meeldib töötada koos viimaste muudatustega lähtekoodis. Me võime kasutada allpool toodud käsku, et paigaldada Flask'i allikate viimased muudatused.
Tehke ajutine kataloog.
mkdir tmp
Nüüd installige Flask Githubi repositooriumist. Selleks, et alljärgnev käsk töötaks, peate jääma internetiühendusse.
pip3 install -e [email protected]:pallets/flask.git#egg=flask
Vaadake konsooli väljundeid, et kontrollida edukat paigaldamist. Nüüd kontrollige, kas me saame Flask käskudele ligi.
flask --help
Te võite näha mõningaid erandeid Flask rakenduse puudumise kohta. Kuid jätke need tähelepanuta, sest me ei ole ühtegi Flask rakendust loonud. Meie rakendus on Flask'i instants, mis on Werkzeug veebiraamistiku ja Jinja templating engine'i mähis.
Tööriistad
Werkzeug on WSGI tööriistakomplekt. WSGI on ainult kutsekonventsioon veebiserverite jaoks, et edastada veebipäringud Python programmeerimiskeeles kirjutatud veebirakendustele.
Jinja
Templating on veebiarendajate oluline oskus. Jinja on Pythonile mõeldud täisfunktsionaalne ja populaarne templating-mootor. See on üsna väljendusrikas keel ja pakub mallide autoritele tugevat tööriistakomplekti.
Samm 4: MongoDB installimine
MongoDB installimiseks järgige allpool toodud samme. Oleme kirjeldanud samme selle installimiseks Debianil põhinevasse Linuxi. Kui kasutate mõnda muud operatsioonisüsteemi, siis minge lingile ja installige vastavalt soovitud operatsioonisüsteemile.
Installige gnupg MongoDB avaliku GPG võtme importimiseks.
sudo apt-get install gnupg
Nüüd importige võti, kasutades allolevat käsku.
wget -qO - //www.mongodb.org/static/pgp/server-4.2.asc
Looge allikate loetelu fail vastavalt oma Linuxi distributsioonile. Me oleme lisanud Debianile vastava allikate loetelu.
echo "deb //repo.mongodb.org/apt/debian buster/mongodb-org/4.2 main"
Käivita uuenduskäsk
sudo apt-get update
Nüüd installige MongoDB, kasutades allolevat käsku.
sudo apt-get install -y mongodb-org
Kui paigaldus on õnnestunud, käivitage MongoDB, kasutades alltoodud käsku.
sudo systemctl start mongod
Kontrollige MongoDB olekut, kasutades allolevat käsku.
sudo systemctl status mongod
Nüüd veenduge, et mongod käivitub automaatselt süsteemi taaskäivitamisel, andes allpool näidatud käsu.
sudo systemctl enable mongod
Nüüd kontrollige, kas saate MongoDB serveriga ühendust, kasutades mongo klienti.
mongo
Proovige mongo shellis kasutada käske help ja show dbs.
Loo Flask App
Kasutage allolevat käsku flask-appbuilderi ja mongoengine'i paigaldamiseks.
pip install flask-appbuilder pip install mongoengine pip install flask_mongoengine pip install flask_mongoengine
Looge luurirakendus, mille väärtused on esitatud kommentaaridena allpool esitatud koodilõikes.
flask fab create-app # Anna käsurea küsimustikus järgmised väärtused # Application Name: flaskTutorialApp # EngineType : MongoEngine
Näeme allpool esitatud väljundiga sarnast väljundit.
Sinu uue rakenduse nimi: exampleApp Sinu mootori tüüp, SQLAlchemy või MongoEngine (SQLAlchemy, MongoEngine) [SQLAlchemy]: MongoEngine Laaditud rakenduse skelett, hea kodeerimine!
Vaadake projekti ja rakenduse paigutust. Allpool on näidatud puu käsu väljundit.
Vaatame Flaski konfigfaili. See on vaikimisi konfig, mis on loodud viimase käsu tulemusena. Kommenteeri lahti Cyborg teema, nagu allpool näidatud.
# Cybord=g teemade konfigureerimine # need teemad asuvad static/appbuilder/css/themes # Me võime luua oma teemad ja neid lihtsalt kasutada, paigutades need samasse dir-struktuuri, et neid üle sõita #APP_THEME = "bootstrap-theme.css" # default bootstrap #APP_THEME = "cerulean.css" # cerulean #APP_THEME = "amelia.css" # amelia teema #APP_THEME = "cosmo.css" # cosmo teema APP_THEME = "cyborg.css" # cyborgteema #APP_THEME = "flatly.css" # flatly teema
Skeleton-rakenduse käivitamiseks kasutage allpool toodud käsku terminalis.
kolbijooks
Flask Hello World
Esimese programmi loomiseks flaskTutorialAppis avage fail views.py app kataloogi all ja lisage järgmine kood. Otsige failis toodud import avaldused. Lisage need avaldused, kui neid veel ei ole.
from flask_appbuilder import BaseView, expose from app import appbuilder class HelloWorld(BaseView): """ See esimene vaade õpetuses """ route_base = "/hello" @expose("/") def hello(self): return "Hello, World! from Software Testing Help" # faili lõpus appbuilder.add_view_no_menu(HelloWorld())
Salvesta fail pärast ülaltoodud lähtekoodi lisamist. Mine projekti juurkataloogi ja kasuta Flaski arendusserveri käivitamiseks alljärgnevat käsku.
kolbijooks
Nüüd navigeeri aadressile //localhost:5000/hello/, et näha väljundit brauseris.
Vigade kõrvaldamine
Praegu ei tööta arendusserver veaotsingurežiimis. Ilma veaotsingurežiimita on raske leida vigu Flask rakenduse lähtekoodist.
Flask'i silitusrežiim toob kaasa järgmise tulemuse:
- Debugirežiim aktiveerib automaatse taaskäivituse. See tähendab, et me ei pea pärast muudatuste tegemist rakenduse lähtekoodis arendusserverit taaskäivitama.
- Debugirežiim aktiveerib Pythoni silumisprogrammi. Me saame kontrollida muutujate väärtusi Exceptioni ajal.
- Debugirežiim võimaldab Flask rakenduse silumist. Saame kontrollida erinevate muutujate väärtusi debugimisseansside ajal.
Peatage arendusserver, kui see juba töötab. Võite kasutada CTRL + C või klaviatuuri katkestamist.
Kasutage järgmist koodi, et lubada silumisrežiimi ja käivitada ajutiselt arendusserver.
FLASK_ENV=arenduse kolvi käivitamine
Otsige konsoolist Debugger PIN-koodi ja märkige see üles.
Nüüd muudame eespool kirjutatud HelloWorld vaate järgmiste koodilõikude ridadega. Pange tähele, et oleme kasutusele võtnud kohandatud erandi.
@expose("/") def hello(self): raise Exception("A custom exception to learn DEBUG Mode") return "Hello, World! from Software Testing Help"
Navigeerige aadressile //localhost:5000/hello/ ja te näete, et rakendus on tekitanud erandi. Brauser kuvab virnajälje, nagu allpool näidatud.
![](/wp-content/uploads/guides/iae5sr2a76-3.png)
Lisaks vaadake konsooli, kus arendusserver töötab. Näete, et seekord tuvastatakse muudatused views.py's automaatselt ja debug-server käivitub ise uuesti. Nüüd ei pea me seda käsitsi uuesti käivitama.
Konsoolil on read, nagu allpool näidatud. Peame märkima Debug PIN-koodi hilisemaks.
* Avastatud muutus failis '/work/sth/flaskTutorialApp/app/views.py', laadimine uuesti 2020-06-02 14:59:49,354:INFO:werkzeug: * Avastatud muutus failis '/work/sth/flaskTutorialApp/app/views.py', laadimine uuesti * Restarting with stat 2020-06-02 14:59:49,592:INFO:werkzeug: * Restarting with stat * Debugger on aktiivne! * Debugger PIN: 150-849-897
Nüüd kontrollige virnajälge brauseris ja minge viimasele reale. Klõpsake sellel, et laiendada selle vaateid ja klõpsake CLI ikoonil, et avada shell interaktiivses režiimis.
![](/wp-content/uploads/guides/iae5sr2a76-4.png)
Kui avate selle, siis näete, et brauseris kuvatakse päringu PIN-kood. Andke päringu PIN-kood ja klõpsake OK.
![](/wp-content/uploads/guides/iae5sr2a76-5.png)
Kui me jätkame pärast Debug PIN-koodi andmist, saame juurdepääsu interaktiivsele kestale.
Me pääseme brauseri sees shell'ile ligi ja saame kontrollida muutujate väärtusi, et leida erandi põhjus ja käsitleda viga paremini. Palun vaadake ühte näidet, mis on näidatud alloleval pildil.
![](/wp-content/uploads/guides/iae5sr2a76-6.png)
Nüüd muutke koodi view.py, nagu allpool näidatud. Pange tähele, et me oleme kommenteerinud rea, mis oli tõstatatud Exception.
@expose("/") def hello(self): # raise Exception("A custom exception to learn DEBUG Mode") return "Hello, World! from Software Testing Help"
Flask rakenduse testimine
Nüüd kirjutame oma esimese testi Flask rakendusele, mida me arendame. Kõigepealt installime PyTest'i. PyTest on testimisraamistik. See aitab meil kirjutada paremat koodi.
Veelgi enam, just seetõttu, et me saame oma rakendusi arendades kirjutada ühikteste, on võimalik järgida TDD lähenemist. TDD tähendab Test-Driven Development. Selle sarja järgmistes õpetustes kirjutame alati kõigepealt testid ja seejärel arendame oma vaateid või mudeleid.
Paigaldage PyTest
pip install pytest
Nüüd loome rakenduse kataloogi sees kataloogi nimega tests ja selles loome faili nimega test_hello.py. Kirjutame oma esimese ühiktesti, et testida meie vaadet.
Kopeeri järgmine koodilõik ja kleebi see faili 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
Testide käivitamiseks kasutage allolevat käsku pytest. PyTest kogub automaatselt testid kokku ja kuvab tulemused standardväljundisse.
![](/wp-content/uploads/guides/iae5sr2a76-7.png)
GitHubi töövoo loomine
Kasutame Git Actions, et luua CI/CD töövoog meie näidisrakenduse jaoks. Järgige oma projekti jaoks allpool toodud samme.
Samm 1: Navigeerige GitHubi repositooriumi lehele. Klõpsake Git Actions.
![](/wp-content/uploads/guides/iae5sr2a76-8.png)
2. samm: kerige lehel allapoole ja leidke olemasolev Pythoni paketi töövoogude mall.
![](/wp-content/uploads/guides/iae5sr2a76-9.png)
3. samm: Pythoni paketi töövoogude seadistamine.
![](/wp-content/uploads/guides/iae5sr2a76-10.png)
4. samm: Kui python-package.yml töövoo konfiguratsioon avaneb, uuendage seda antud yaml-lisatähe väärtuste alusel.
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
Tahame testida oma Flask rakendust uusimas Ubuntu Linuxi distributsioonis. Lisaks operatsioonisüsteemile tahame teste teha ainult Python 3.7 ja Python 3.8 abil.
Samm 5: Kohustage python-package.yml uuendatud väärtustega.
![](/wp-content/uploads/guides/iae5sr2a76-11.png)
6. samm: Eelmisel lehel tehtud kinnitus viib meid GitActions'i tööde juurde.
![](/wp-content/uploads/guides/iae5sr2a76-12.png)
7. samm: [Vabatahtlik]
Githubi tööde lehel näidisrakenduse jaoks saame luua märgi ja paigutada selle README.md faili juurde, et kuvada koostamise staatus.
Nüüd järgitakse ja käivitatakse Git Actions'ile Git Workflow, nagu on kirjutatud python-package.yml'is, iga kord, kui muudatused viiakse master-harule.
Kokkuvõte
Selles õpetuses oleme käsitlenud kõiki põhimõisteid alates eeltingimustest kuni CI/CD töövoogude seadistamiseni veebirakenduse jaoks, mis on välja töötatud Flask - Pythonil põhineva veebiarendusraamistiku abil.
See õpetus hõlmab kõiki vajalikke samme, nagu Pythoni installimine, allalaadimine & Flaski installimine, Flask-Appbuilderiga töötamine, PyTestiga testimine jne, et alustada veebiarendust Pythoni abil. Veebiarendajate kogukond võrdleb Flaski tavaliselt teise populaarse Pythoni veebiarendusraamistikuga Django.
Selgitame neid erinevusi ja võrdleme neid raamistikke ka ühes selle sarja õpetustes.