Tento úvodný kurz jazyka Python Flask vysvetľuje, čo je Flask, inštaláciu jazyka Python, Virtualenv, príklad Flask Hello World s časťou o príkladoch kódu, ladení a testovaní:
Tvorba webových stránok je skôr umenie ako zručnosť. Vyžaduje si trpezlivosť a usilovnosť spolu s vytrvalosťou, odvahou a odhodlaním vytvoriť to, čo je potrebné na to, aby bola skutočne úspešná. V dnešnej dobe je pre učiacich sa nevyhnutné, aby sa čo najskôr dostali do tempa.
Vytvorili sme tento výukový program pre Python Flask, aby sa študenti mohli oboznámiť s jednoduchým aj zložitým webovým programovaním pomocou Pythonu 3.
Tento návod na Python Flask je skôr návodom pre začiatočníkov, ktorý sa bude zaoberať inštaláciou Pythonu, Virtualenv a ďalších základných balíkov. V tejto sérii návodov tiež nainštalujeme Flask spolu s ďalšími potrebnými pluginmi Flasku. Zahrnuli sme aj časť o ladení kódu, testovaní a kontinuálnej integrácii pomocou Git Actions.
Zoznam tutoriálov v tejto sérii Flask
Výučba č. 1: Python Flask Tutorial - Úvod do Flask pre začiatočníkov
Výučba č. 2: Šablóna, formulár, zobrazenie a presmerovanie Flask s príkladmi
Výučba č. 3: Manipulácia s databázou Flask - Ako používať Flask s databázou
Výučba č. 4: Rozloženie aplikácie Flask a projektu Flask pomocou Blueprint &; Bootstrap
Výučba č. 5: Návrhové vzory a osvedčené postupy pre webové aplikácie Flask
Výučbový kurz č. 6: Flask API Tutorial s príkladom
Výučbový kurz č. 7: Django Vs Flask Vs Node: Ktorý framework si vybrať
Výučbový kurz č. 8: Top 31 Populárne otázky na rozhovor o Pythone Flask s odpoveďami
Čo je Flask
Flask je rámec pre vývoj webových aplikácií. Je to rámec so zabudovaným vývojovým serverom a ladiacim programom.
Samotný framework Flask sa od ostatných archetypov líši tým, že umožňuje webovým vývojárom byť flexibilný a pohodlne sa prispôsobovať často vydávaným zmenám v komunite vývojárov softvéru.
Na čo sa používa fľaša
Na vývoj webových aplikácií v programovacom jazyku Python používame rámec Flask. Integruje sa s ďalšími službami tretích strán a rozhraniami API, aby priniesol bohatstvo a význam vyvíjanej aplikácie. Základné koncepty Flasku sú jednoduché a má malú veľkosť.
Začnime s týmto návodom Python Flask, aby sme pochopili vývoj webových aplikácií pomocou úložiska Flask na GitHube. Predtým, ako budete pokračovať, naklonujte si projekt z GitHubu, aby ste mohli ľahko sledovať diskutované príklady kódu.
Predpoklady
Okrem uvedených nadpisov v tejto časti odporúčame vytvoriť si konto Github. Pokračujme ďalej uvedenými krokmi v rámci predpokladov.
Krok 1: Inštalácia Pythonu
Skontrolujte, či máte nainštalovaný Python 3. Ak nie, stiahnite si Python 3 odtiaľto a nainštalujte ho podľa svojho operačného systému.
Krok 2: Vytvorenie virtuálneho prostredia Python
Vytvorte virtuálne prostredie pomocou nižšie uvedeného príkazu.
python3 -m venv venv
Na aktiváciu virtuálneho prostredia Python použite nasledujúci príkaz.
source venv/bin/activate
Nižšie uvádzame príklad aktivácie a deaktivácie virtuálneho prostredia.
Všetky nasledujúce príkazy v tomto návode by sa mali spustiť v aktivovanom virtuálnom prostredí. Nainštalujte balík wheel, aby sme mohli zostavovať kolesá vo virtuálnom prostredí.
pip install koleso
Krok 3: Stiahnutie a vloženie fľaše
Musíme vykonať kroky na stiahnutie aplikácie Flask a nainštalovať aplikáciu Flask pomocou nižšie uvedených krokov.
Teraz nainštalujte aplikáciu Flask.
pip install flask
Niektorí z nás radi pracujú s najnovšími zmenami zdrojového kódu. Na inštaláciu s najnovšími zmenami zdrojových kódov Flasku môžeme použiť nižšie uvedený príkaz.
Vytvorte dočasný adresár.
mkdir tmp
Teraz si nainštalujte Flask z repozitára Github. Aby bol nasledujúci príkaz funkčný, musíte zostať pripojení k internetu.
pip3 install -e [email protected]:pallets/flask.git#egg=flask
Pozrite sa na výstupy konzoly a skontrolujte úspešnú inštaláciu. Teraz skontrolujte, či máme prístup k príkazom Flask.
flask --help
Možno uvidíte niekoľko výnimiek o absencii aplikácie Flask. Tie však zanedbajte, pretože sme žiadnu aplikáciu Flask nevytvorili. Naša aplikácia je inštanciou Flask, ktorá je obalom na webovom frameworku Werkzeug a šablónovacom engine Jinja.
Werkzeug
Werkzeug je súbor nástrojov WSGI. WSGI je len konvencia pre volanie webových serverov na odovzdávanie webové požiadavky na webové aplikácie napísané v programovacom jazyku Python.
Jinja
Šablónovanie je základnou zručnosťou webových vývojárov. Jinja je plne vybavený a populárny šablónovací engine pre Python. Je to pomerne expresívny jazyk a poskytuje autorom šablón robustnú sadu nástrojov.
Krok 4: Inštalácia MongoDB
Postupujte podľa nižšie uvedených krokov na inštaláciu MongoDB. Uviedli sme kroky na inštaláciu v systéme Linux založenom na Debiane. Ak používate iný operačný systém, prejdite na odkaz a nainštalujte ho podľa zamýšľaného operačného systému.
Inštalácia gnupg na import verejného kľúča GPG MongoDB.
sudo apt-get install gnupg
Teraz importujte kľúč pomocou nižšie uvedeného príkazu.
wget -qO - //www.mongodb.org/static/pgp/server-4.2.asc
Vytvorte súbor so zoznamom zdrojov podľa vašej distribúcie Linuxu. My sme pridali zoznam zdrojov podľa Debianu.
echo "deb //repo.mongodb.org/apt/debian buster/mongodb-org/4.2 main"
Spustite príkaz aktualizácie
sudo apt-get update
Teraz nainštalujte MongoDB pomocou nižšie uvedeného príkazu.
sudo apt-get install -y mongodb-org
Po úspešnej inštalácii spustite MongoDB pomocou nižšie uvedeného príkazu.
sudo systemctl start mongod
Pomocou nasledujúceho príkazu skontrolujte stav MongoDB.
sudo systemctl status mongod
Teraz zabezpečte, aby sa mongod automaticky spustil pri reštarte systému vydaním nižšie uvedeného príkazu.
sudo systemctl enable mongod
Teraz skontrolujte, či sa môžete pripojiť k serveru MongoDB pomocou klienta mongo.
mongo
V príkazovom riadku mongo skúste použiť príkazy help a show dbs.
Vytvorenie aplikácie Flask
Pomocou nasledujúceho príkazu nainštalujte nástroje flask-appbuilder a mongoengine.
pip install flask-appbuilder pip install mongoengine pip install flask_mongoengine
Vytvorte kostru aplikácie s hodnotami uvedenými v komentároch v nasledujúcom úryvku kódu.
flask fab create-app # V dotazníku príkazového riadku zadajte nasledujúce hodnoty # Názov aplikácie: flaskTutorialApp # EngineType : MongoEngine
Zobrazí sa podobný výstup, ako je uvedený nižšie.
Názov vašej novej aplikácie: exampleApp Váš typ motora, SQLAlchemy alebo MongoEngine (SQLAlchemy, MongoEngine) [SQLAlchemy]: MongoEngine Stiahnutá kostra aplikácie, dobré kódovanie!
Pozrite sa na rozloženie projektu a aplikácie. Nižšie sme zobrazili výstup príkazu tree.
Pozrime sa na konfiguračný súbor Flask. Je to predvolený konfigurátor vygenerovaný ako výsledok posledného príkazu. Odkomentujte Kyborg ako je znázornené nižšie.
# Konfigurácia témy pre Cybord=g # tieto témy sa nachádzajú na static/appbuilder/css/themes # Môžeme si vytvoriť vlastné a ľahko ich používať tak, že ich umiestnime do rovnakej štruktúry adresárov, aby sme ich mohli prepísať #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" # cyborgtéma #APP_THEME = "flatly.css" # flatly téma
Ak chcete spustiť kostru aplikácie, použite v termináli nižšie uvedený príkaz.
spustenie banky
Flask Hello World
Ak chcete vytvoriť svoj prvý program v aplikácii flaskTutorialApp, otvorte súbor views.py v adresári app a pridajte nasledujúci kód. Vyhľadajte príkazy import uvedené v súbore. Ak ešte nie sú prítomné, pridajte tieto príkazy.
from flask_appbuilder import BaseView, expose from app import appbuilder class HelloWorld(BaseView): """ Toto prvé zobrazenie návodu """ route_base = "/hello" @expose("/") def hello(self): return "Hello, World! from Software Testing Help" # na konci súboru appbuilder.add_view_no_menu(HelloWorld())
Po pridaní vyššie uvedeného zdrojového kódu súbor uložte. Prejdite do koreňového adresára projektu a pomocou nižšie uvedeného príkazu spustite vývojový server Flask.
spustenie banky
Teraz prejdite na adresu //localhost:5000/hello/ a pozrite si výstup v prehliadači.
Ladenie
V súčasnosti vývojový server nie je spustený v režime ladenia. Bez režimu ladenia je ťažké nájsť chyby v zdrojovom kóde aplikácie Flask.
Režim ladenia v aplikácii Flask vedie k nasledujúcim výsledkom:
- Režim ladenia aktivuje funkciu Automatické načítanie. To znamená, že po vykonaní zmien v zdrojovom kóde aplikácie nemusíme reštartovať vývojový server.
- Režim ladenia aktivuje debugger Pythonu. Počas Exception môžeme kontrolovať hodnoty premenných.
- Režim ladenia umožňuje ladenie aplikácie Flask. V reláciách ladenia môžeme kontrolovať hodnoty rôznych premenných.
Ak je vývojový server už spustený, zastavte ho. Môžete na to použiť klávesovú skratku CTRL + C alebo prerušenie klávesnice.
Nasledujúci kód slúži na zapnutie režimu ladenia a dočasné spustenie vývojového servera.
FLASK_ENV=development flask run
Vyhľadajte v konzole kód PIN ladiaceho programu a zapíšte si ho.
Teraz zmeňme vyššie napísaný pohľad HelloWorld nasledujúcimi riadkami úryvku kódu. Všimnite si, že sme zaviedli vlastnú výnimku.
@expose("/") def hello(self): raise Exception("Vlastná výnimka na naučenie režimu DEBUG") return "Hello, World! from Software Testing Help"
Prejdite na adresu //localhost:5000/hello/ a uvidíte, že aplikácia vyvolala výnimku. Prehliadač zobrazí stopu zásobníka, ako je uvedené nižšie.
![](/wp-content/uploads/guides/iae5sr2a76-3.png)
Ďalej sa pozrite do konzoly, kde beží vývojový server. Zistíte, že tentoraz sa zmeny v views.py automaticky zistia a ladiaci server sa sám reštartuje. Teraz ho už nemusíme ručne reštartovať.
V konzole sa zobrazia riadky, ako je znázornené na obrázku nižšie. Musíme si zapísať kód Debug PIN na neskôr.
* 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
Teraz skontrolujte stopu zásobníka v prehliadači a prejdite na posledný riadok. Kliknutím naň rozbaľte jeho zobrazenie a kliknutím na ikonu CLI otvorte shell v interaktívnom režime.
![](/wp-content/uploads/guides/iae5sr2a76-4.png)
Po jeho otvorení uvidíte, že prehliadač zobrazí výzvu na zadanie kódu Debug PIN. Zadajte kód Debug PIN a kliknite na tlačidlo OK.
![](/wp-content/uploads/guides/iae5sr2a76-5.png)
Keď po zadaní kódu PIN Debug pokračujeme ďalej, môžeme získať prístup k interaktívnemu shellu.
Z prehliadača pristupujeme k shellu a môžeme kontrolovať hodnoty premenných, aby sme zistili príčinu výnimky a chybu lepšie spracovali. Pozrite sa na jeden z príkladov uvedených na obrázku nižšie.
![](/wp-content/uploads/guides/iae5sr2a76-6.png)
Teraz zmeňte kód v súbore view.py, ako je znázornené nižšie. Všimnite si, že sme zakomentovali riadok, v ktorom sa vyskytla výnimka.
@expose("/") def hello(self): # raise Exception("Vlastná výnimka pre učenie režimu DEBUG") return "Hello, World! from Software Testing Help"
Testovanie aplikácie Flask
Teraz napíšeme náš prvý test pre aplikáciu Flask, ktorú vyvíjame. Najprv si nainštalujte PyTest. PyTest je testovací framework. Pomáha nám písať lepší kód.
Navyše, práve preto, že pri vývoji našich aplikácií môžeme písať unit testy, je možné dodržiavať prístup TDD. TDD je skratka pre Test-Driven Development. V ďalších tutoriáloch tohto seriálu budeme vždy najprv písať testy a až potom vyvíjať naše pohľady alebo modely.
Inštalácia PyTestu
pip install pytest
Teraz vytvorte adresár s názvom tests v adresári app a v ňom vytvorte súbor s názvom test_hello.py. Napíšeme náš prvý unit test, ktorý otestuje náš pohľad.
Skopírujte nasledujúci úryvok kódu a vložte ho do súboru 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
Na spustenie testov použite nasledujúci príkaz pytest. PyTest automaticky zozbiera testy a zobrazí výsledky na štandardnom výstupe.
![](/wp-content/uploads/guides/iae5sr2a76-7.png)
Vytvorenie pracovného postupu GitHub
Na vytvorenie pracovného postupu CI/CD pre našu vzorovú aplikáciu použijeme Git Actions. Pri svojom projekte postupujte podľa nižšie uvedených krokov.
Krok 1: Prejdite na stránku úložiska na GitHub-e. Kliknite na Git Actions.
![](/wp-content/uploads/guides/iae5sr2a76-8.png)
Krok 2: Prejdite na stránke nadol a nájdite existujúcu šablónu pracovného postupu pre balík Python.
![](/wp-content/uploads/guides/iae5sr2a76-9.png)
Krok 3: Nastavenie balíka Python Workflow.
![](/wp-content/uploads/guides/iae5sr2a76-10.png)
Krok 4: Po otvorení konfigurácie pracovného postupu python-package.yml ju aktualizujte na základe zadaných hodnôt prídavných značiek yaml.
názov: flaskTutorialApp úlohy: build: runs-on: ubuntu-latest stratégia: matrix: python-version: [3.7, 3.8] mongodb-version: [4.2] kroky: - názov: Start MongoDB používa: supercharge/[email protected] s: mongodb-version: ${{ matrix.mongodb-version }} # ďalšie hodnoty
Našu aplikáciu Flask chceme otestovať na najnovšej distribúcii Ubuntu Linux. Okrem operačného systému chceme naše testy spustiť len pomocou Pythonu 3.7 a Pythonu 3.8.
Krok 5: Odovzdajte súbor python-package.yml s aktualizovanými hodnotami.
![](/wp-content/uploads/guides/iae5sr2a76-11.png)
Krok 6: Odovzdanie na predchádzajúcej stránke nás presmeruje do úloh GitActions.
![](/wp-content/uploads/guides/iae5sr2a76-12.png)
Krok 7: [Voliteľné]
Na stránke Github Jobs pre vzorovú výučbovú aplikáciu môžeme vytvoriť odznak a umiestniť ho do súboru README.md na zobrazenie stavu zostavenia.
Teraz, vždy keď sú zmeny odovzdané do hlavnej vetvy, bude nasledovaný pracovný postup Git, ako je napísané v python-package.yml, a spustí sa na Akciách Git.
Záver
V tomto tutoriáli sme sa venovali všetkým základným konceptom od predpokladov až po nastavenie pracovného postupu CI/CD pre webovú aplikáciu vytvorenú pomocou Flask - rámca pre vývoj webových aplikácií založeného na jazyku Python.
Tento návod zahŕňa všetky potrebné kroky, ako je inštalácia Pythonu, stiahnutie & inštalácia Flasku, práca s Flask-Appbuilder, testovanie pomocou PyTestu atď., aby ste mohli začať s vývojom webových aplikácií pomocou Pythonu. Komunita tvorcov webových aplikácií zvyčajne porovnáva Flask s iným populárnym frameworkom pre vývoj webových aplikácií v Pythone s názvom Django.
Tieto rozdiely vysvetlíme a porovnáme v jednom z tutoriálov tejto série.