python flask tutorial introduction flask
Tento úvodní tutoriál Python Flask vysvětluje, co je Flask, instalace Pythonu, Virtualenv, příkladu Flask Hello World s částí o příkladech kódu, ladění a testování:
Vývoj webových stránek je více umění než dovednost. Vyžaduje to trpělivost a píli, spolu s vytrvalostí, odvahou a odhodláním vytvořit to, co je nezbytné, aby byl skutečný úspěch. V dnešní době je nezbytné, aby se studenti co nejdříve dostali k rychlosti.
Tento výukový program pro Python Flask jsme vytvořili pro studenty, aby se dostali na rychlost a implementovali jednoduché i složité webové programování pomocí Pythonu 3.
Tento výukový program pro Python Flask je spíše výukový program pro začátečníky, který bude zahrnovat instalaci Pythonu, Virtualenv a dalších základních balíčků. V této sérii tutoriálů také nainstalujeme Flask spolu s dalšími nezbytnými pluginy Flask. Také jsme zahrnuli část o ladění kódu, testování a nepřetržité integraci pomocí akcí Git.
Co se naučíte:
Seznam výukových programů v této sérii baňek
Výukový program č. 1: Výukový program pro pythonovou baňku - Úvod do baňky pro začátečníky
Výukový program č. 2: Šablona baňky, formulář, zobrazení a přesměrování s příklady
Výukový program č. 3: Zpracování databáze baňky - Jak používat baňku s databází
Výukový program č. 4: Aplikace baňky a rozložení projektu baňky s plánem a bootstrapem
Výukový program č. 5: Baňky návrhové vzory a osvědčené postupy pro webové aplikace
Výukový program č. 6: Výukový program pro flask API s příkladem | Rozšíření baňky pomocí API
Výukový program č. 7: Uzel Django Vs Flask Vs: Který rámec vybrat
Výukový program č. 8: Top 31 populárních otázek na rozhovor s Python Flask s odpověďmi
Co je to baňka
Flask je rámec pro vývoj webových aplikací. Jedná se o framework s integrovaným vývojovým serverem a debuggerem.
web, který vám umožňuje stahovat videa z YouTube
Flask framework se sám o sobě liší od ostatních archetypů, protože umožňuje webovým vývojářům být flexibilní a pohodlně se přizpůsobit často vydávaným změnám v komunitě vývoje softwaru.
Na co se baňka používá
Pro vývoj webových aplikací v programovacím jazyce Python používáme rámec Flask. Integruje se s dalšími službami a API třetích stran, aby přinesla bohatost a význam vyvíjené aplikaci. Základní koncepty baňky jsou jednoduché a mají malou stopu.
Začněme s tímto tutoriálem Python Flask, abychom porozuměli vývoji webu pomocí úložiště Flask GitHub. Než však budete pokračovat, klonujte projekt z Githubu, abyste mohli snadno pokračovat v popsaných příkladech kódu.
Předpoklady
Kromě uvedených záhlaví v této části doporučujeme vytvořit účet Github. V předpokladech pokračujeme níže uvedenými kroky.
Krok 1: Nainstalujte Python
Zkontrolujte, zda jste nainstalovali Python 3 nebo ne. Pokud ne, stáhněte si Python 3 z tady a nainstalujte jej podle svého operačního systému.
Krok 2: Vytvořte virtuální prostředí Pythonu
Vytvořte virtuální prostředí pomocí níže uvedeného příkazu.
python3 -m venv venv
Pomocí níže uvedeného příkazu aktivujte virtuální prostředí Pythonu.
source venv/bin/activate
Níže uvádíme příklad aktivace a deaktivace virtuálního prostředí.
Všechny následující příkazy v tomto kurzu by se měly spouštět v aktivovaném virtuálním prostředí. Nainstalujte balíček kol, abychom mohli stavět kola uvnitř virtuálního prostředí.
pip install wheel
Krok 3: Stažení baňky a Insall
Musíme provést kroky stažení baňky a instalaci baňky pomocí níže uvedených kroků.
Nyní nainstalujte Flask.
pip install flask
Někteří z nás rádi pracují s nejnovějšími změnami zdrojového kódu. Níže uvedený příkaz můžeme použít k instalaci s nejnovějšími změnami zdrojů Flask.
Vytvořte dočasný adresář.
mkdir tmp
Nyní nainstalujte Flask z úložiště Github. Aby fungoval níže uvedený příkaz, musíte zůstat připojeni k internetu.
pip3 install -e git+git@github.com:pallets/flask.git#egg=flask
Podívejte se na výstupy z konzoly a zkontrolujte úspěšnou instalaci. Nyní zkontrolujte, zda máme přístup k příkazům baňky.
flask --help
Mohou se zobrazit některé výjimky týkající se absence aplikace Flask. Ale ty zanedbávejte, protože jsme nevytvořili žádnou aplikaci Flask. Naše aplikace je instancí Flask, což je obal webového rámce Werkzeug a šablonového enginu Jinja.
Nástroj
Werkzeug je sada nástrojů WSGI. WSGI je pouze konvence volání pro předávání webových serverů webové požadavky k webovým aplikacím napsaným v programovacím jazyce Python.
Jinja
Templating je základní sada dovedností webových vývojářů. Jinja je plně vybavený a oblíbený šablonový modul pro Python. Je to docela expresivní jazyk a poskytuje autorům šablon robustní sadu nástrojů.
Krok 4: Nainstalujte MongoDB
Při instalaci MongoDB postupujte podle níže uvedených kroků. Uvedli jsme kroky, které je třeba nainstalovat do systému Linux založeného na Debianu. Pokud používáte jiný operační systém, přejděte na stránku odkaz a nainstalujte podle zamýšleného operačního systému.
Nainstalujte gnupg pro import veřejného klíče GPG MongoDB.
sudo apt-get install gnupg
Nyní importujte klíč pomocí níže uvedeného příkazu.
wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
Vytvořte soubor seznamu zdrojů podle vaší distribuce Linuxu. Přidali jsme seznam zdrojů podle 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
Spusťte příkaz aktualizace
sudo apt-get update
Nyní nainstalujte MongoDB pomocí níže uvedeného příkazu.
sudo apt-get install -y mongodb-org
Po úspěšné instalaci spusťte MongoDB pomocí níže uvedeného příkazu.
sudo systemctl start mongod
Zkontrolujte stav MongoDB pomocí níže uvedeného příkazu.
sudo systemctl status mongod
Nyní zajistěte, aby se mongod automaticky spustil při restartu systému vydáním níže uvedeného příkazu.
sudo systemctl enable mongod
Nyní zkontrolujte, zda se můžete připojit k serveru MongoDB pomocí klienta mongo.
mongo
V prostředí Mongo Shell zkuste použít nápovědu a zobrazit příkazy dbs.
Vytvořte baňkovou aplikaci
Pomocí níže uvedeného příkazu nainstalujte flask-appbuilder a mongoengine.
pip install flask-appbuilder pip install mongoengine pip install flask_mongoengine
Vytvořte skeletovou aplikaci s hodnotami zobrazenými jako komentáře v následujícím fragmentu kódu.
flask fab create-app # Give the following values in the command line questionnaire # Application Name: flaskTutorialApp # EngineType : MongoEngine
Uvidíme výstup podobný tomu, který je uveden níže.
Your new app name: exampleApp Your engine type, SQLAlchemy or MongoEngine (SQLAlchemy, MongoEngine) (SQLAlchemy): MongoEngine Downloaded the skeleton app, good coding!
Podívejte se na rozložení projektu a aplikace. Ukázali jsme výstup příkazu stromu níže.
jak otevřít soubor jar s runtime prostředím Java
Podívejme se na konfigurační soubor Flask. Jedná se o výchozí konfiguraci generovanou jako výsledek posledního příkazu. Odkomentovat Kyborgu téma, jak je uvedeno níže.
# 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
Chcete-li spustit skeletovou aplikaci, použijte na terminálu níže uvedený příkaz.
flask run
Baňka Hello World
Chcete-li vytvořit svůj první program v aplikaci flaskTutorialApp, otevřete soubor views.py v adresáři aplikace a přidejte následující kód. Vyhledejte příkazy k importu uvedené v souboru. Přidejte tato prohlášení, pokud již nejsou k dispozici.
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())
Po přidání výše uvedeného zdrojového kódu soubor uložte. Přejděte do kořenového adresáře projektu a pomocí níže uvedeného příkazu spusťte vývojový server Flask.
flask run
Nyní přejděte na http: // localhost: 5000 / ahoj / a podívejte se na výstup v prohlížeči.
Ladění
Aktuálně není vývojový server spuštěn v režimu ladění. Bez režimu ladění je obtížné najít chyby ve zdrojovém kódu aplikace Flask.
Režim ladění v baňce má za následek následující:
- Režim ladění aktivuje automatický nabíječ. To znamená, že po provedení změn ve zdrojovém kódu aplikace nemusíme restartovat vývojový server.
- Režim ladění aktivuje debugger Pythonu. Během výjimky můžeme zkontrolovat hodnoty proměnných.
- Režim ladění umožňuje ladění aplikace Flask. V relacích ladění můžeme zkontrolovat hodnoty různých proměnných.
Zastavte vývojový server, pokud je již spuštěný. Stejným způsobem můžete použít kombinaci kláves CTRL + C nebo přerušení klávesnice.
Následující kód použijte k povolení režimu ladění a dočasnému spuštění vývojového serveru.
FLASK_ENV=development flask run
Vyhledejte PIN ladicího programu na konzoli a poznamenejte si jej.
Nyní změňme výše napsané zobrazení HelloWorld pomocí následujících řádků fragmentu kódu. Všimněte si, že jsme zavedli vlastní výjimku.
@expose('/') def hello(self): raise Exception('A custom exception to learn DEBUG Mode') return 'Hello, World! from Software Testing Help'
Přejděte na http: // localhost: 5000 / ahoj / a uvidíte, že aplikace vyvolala výjimku. Prohlížeč zobrazí trasování zásobníku, jak je znázorněno níže.

Dále se podívejte na konzolu, kde běží vývojový server. Zjistíte, že tentokrát jsou změny v view.py automaticky detekovány a ladicí server se sám restartuje. Nyní jej nemusíme ručně restartovat.
Konzola bude mít čáry, jak je znázorněno níže. Musíme si poznamenat PIN pro ladění na později.
* 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
Nyní zkontrolujte trasování zásobníku v prohlížeči a přejděte na poslední řádek. Kliknutím na něj rozbalíte jeho zobrazení a kliknutím na ikonu CLI otevřete shell v interaktivním režimu.

Jakmile jej otevřete, uvidíte, že prohlížeč zobrazí výzvu k ladění kódu PIN. Zadejte ladicí PIN a klikněte na OK.

Jakmile budeme postupovat dopředu po zadání PIN ladění, můžeme přistupovat k interaktivnímu shellu.
K shellu přistupujeme z prohlížeče a můžeme kontrolovat hodnoty proměnných, abychom našli příčinu výjimky a lépe zpracovali chybu. Podívejte se prosím na jeden z příkladů zobrazených na obrázku níže.

Nyní změňte kód v view.py, jak je znázorněno níže. Všimněte si, že jsme komentovali řádek, který měl zvýšenou výjimku.
@expose('/') def hello(self): # raise Exception('A custom exception to learn DEBUG Mode') return 'Hello, World! from Software Testing Help'
Testování aplikace baňky
Nyní napíšeme náš první test pro aplikaci Flask, kterou vyvíjíme. Nejprve nainstalujte PyTest. PyTest je testovací rámec. Pomáhá nám to psát lepší kód.
Kromě toho, že při vývoji našich aplikací můžeme psát jednotkové testy, je možné dodržovat přístup TDD. TDD znamená Test-Driven Development. V našich dalších tutoriálech této řady budeme vždy nejprve psát testy a rozvíjet naše pohledy nebo modely.
Nainstalujte PyTest
pip install pytest
Nyní vytvořte adresář s názvem testy uvnitř adresáře aplikace a v něm vytvořte soubor s názvem test_hello.py. Pojďme napsat náš první test jednotky, abychom otestovali náš pohled.
Zkopírujte následující fragment kódu a vložte jej do 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
Ke spuštění testů použijte níže uvedený příkaz pytest. PyTest automaticky shromažďuje testy a zobrazuje výsledky na standardním výstupu.

Vytvořte pracovní postup GitHub
Git Akce používáme k vytvoření pracovního postupu CI / CD pro naši ukázkovou aplikaci. Postupujte podle níže uvedených kroků pro váš projekt.
Krok 1: Přejděte na stránku úložiště na GitHubu. Klikněte na Git Akce.

Krok 2: Přejděte dolů na stránce a najděte existující šablonu pracovního postupu pro balíček Pythonu.

Krok 3: Nastavení pracovního postupu balíčku Pythonu.

Krok 4: Jakmile se otevře konfigurace pracovního postupu python-package.yml, aktualizujte ji na základě daných hodnot yaml dalších značek.
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
Chceme otestovat naši aplikaci Flask na nejnovější distribuci Ubuntu Linux. Kromě OS chceme naše testy spouštět pouze pomocí Pythonu 3.7 a Pythonu 3.8.
Krok 5: Potvrďte python-package.yml aktualizovanými hodnotami.

Krok 6: Potvrzení na předchozí stránce nás přenese k úlohám GitActions.

Krok 7: (Volitelný)
Na stránce Úlohy Github pro ukázkovou výukovou aplikaci můžeme vytvořit odznak a umístit ho do souboru README.md pro zobrazení stavu sestavení.
Nyní, kdykoli jsou změny potvrzeny v hlavní větvi, bude následován Git Workflow, jak je napsán v python-package.yml, a bude spuštěn v akcích Git.
Závěr
V tomto kurzu jsme se seznámili se všemi základními koncepty od předpokladů až po nastavení pracovního postupu CI / CD pro webovou aplikaci vyvinutou pomocí Flask - vývojový rámec pro web založený na Pythonu.
Tento kurz zahrnuje všechny nezbytné kroky, jako je instalace Pythonu, stahování a instalace Flasku, práce s Flask-Appbuilderem, testování pomocí PyTestu atd., Abyste mohli začít s vývojem webu pomocí Pythonu. Komunita pro vývoj webových aplikací obvykle porovnává Flask s jiným populárním vývojovým rámcem pro Python s názvem Django.
Vysvětlíme tyto rozdíly a také porovnáme tyto rámce v jednom z tutoriálů v této sérii.
Doporučené čtení
- Uzel Django Vs Flask Vs: Který rámec vybrat
- Výukový program pro flask API s příkladem | Rozšíření baňky pomocí API
- Aplikace baňky a rozložení projektu baňky s plánem a bootstrapem
- Zpracování databáze baňky - Jak používat baňku s databází
- Baňky návrhové vzory a osvědčené postupy pro webové aplikace
- Šablona baňky, formulář, zobrazení a přesměrování s příklady
- Top 31 populárních otázek na rozhovor s Python Flask s odpověďmi
- Výukový program pro Python pro začátečníky (praktické školení v Pythonu ZDARMA)