O Flaskovi
Flask je platforma pro vývoj webových aplikací založená na Pythonu, která je speciálně navržena tak, aby byla pro začátek minimální. To pomáhá při rychlých prototypech, rychlém vývoji a rychlém nasazení. Jakékoli pokročilé funkce, které musíte přidat do své webové aplikace, lze přidat pomocí rozšíření. Oficiální stránka Flasku se popisuje jako „mikro“ rámec, protože ponechává všechna důležitá rozhodnutí na samotných uživatelích a rozhoduje jen málo za ně. Uživatelé si mohou vybrat vlastní šablony motorů, knihovny pro správu databází, nástroje pro ověřování formulářů atd., I když Flask přichází s některými rozumnými výchozími hodnotami.
Instalace Flask v Linuxu
Pokud používáte Ubuntu, můžete Flask nainstalovat spuštěním níže uvedeného příkazu:
$ sudo apt nainstalovat python3-flaskMůžete se vyhnout použití verze úložiště a nainstalovat nejnovější verzi Flask ze správce balíčků „pip“ spuštěním následujících dvou příkazů za sebou:
$ sudo apt nainstalovat python3-pipInstalační baňka $ pip3
Pokud používáte jinou distribuci Linuxu, vyhledejte balíčky „Flask“ ve správci balíků nebo jej nainstalujte z instalačního nástroje balíku „pip“. Další podrobné pokyny jsou k dispozici zde.
Po dokončení instalace můžete zkontrolovat verzi baňky pomocí níže uvedeného příkazu:
$ python3 -c "import baňky; tisk (baňka.__verze__)"Model klient-server
Jak již bylo řečeno, Flask se používá k vývoji webových aplikací. Všechny rámce pro vývoj webových aplikací v Pythonu a dalších programovacích jazycích obvykle používají architekturu klient-server. Flask také používá model klient-server, kde mohou uživatelé psát logiku na straně serveru k vytváření webových aplikací nebo webů. „Klientem“ se zde rozumí webový prohlížeč nebo jakákoli jiná aplikace, která umožňuje vykreslování webových stránek pomocí technologií HTML, JavaScript a CSS. Zatímco „server“ označuje místní nebo vzdálený server, kde je spuštěna vaše aplikace Flask napsaná v jazyce Python.
Když spustíte aplikaci Flask místně na svém PC, automaticky se vytvoří místní server, který bude sloužit webové aplikaci. Flask vygeneruje adresu URL localhost ve vašem terminálu. Tuto adresu URL můžete navštívit v libovolném webovém prohlížeči a zobrazit konečný výsledek. Můžete také nastavit vzdálený server pro usnadnění komunikace mezi klientem a serverem a spuštění vlastního veřejného webu nebo webové aplikace.
Můžete vytvořit kód HTML, JavaScript a CSS na straně klienta potřebný pro vaši webovou aplikaci pomocí kódu na straně serveru napsaného v baňce a Pythonu. Ale jakmile je webová aplikace nasazena a spustíte ji ve webovém prohlížeči, vaše webová aplikace neuvidí nebo nerozumí kódu Pythonu. Zpracovává pouze HTML, JavaScript a CSS, protože webové prohlížeče podporují pouze tyto technologie. Stále budete moci komunikovat se serverem ze strany klienta pomocí požadavků HTTP. Můžete velmi předat data z klienta na server, zpracovat je pomocí nějaké logiky na straně serveru a vrátit výsledek.
Takže v závislosti na druhu webové aplikace, kterou vyvíjíte, možná budete muset rozhodnout, kam implementovat logiku: na straně serveru nebo na straně klienta případ od případu.
Jednoduchá aplikace Hello World v baňce
Níže uvedený ukázkový kód můžete použít k vytvoření zjednodušující aplikace „Hello World“ v baňce, abyste mohli začít:
z baňky na dovoz baňkyaplikace = Baňka (__ name__)
@aplikace.trasa('/')
def hello_world_app ():
message = "Ahoj světe!!"
zpětná zpráva
První příkaz ve výše uvedeném ukázkovém kódu importuje třídu „Flask“ z modulu „flask“. Po importu budete moci použít všechny metody dostupné ve třídě „Flask“.
V dalším příkazu se vytvoří nová instance třídy „Flask“ a název souboru se k ní zadá jako argument. Pokud právě používáte jeden „.py “soubor bez dalšího„ __init__.py “soubor, který se obvykle používá při vytváření struktury souboru pro balíček Pythonu, název bude mít pevně zakódovanou hodnotu„ __main__ “. Argument „__name__“ říká Flaskovi, kde má hledat soubory související s aktuální spuštěnou aplikací baňky. Místo hlavního argumentu „__name__“ můžete také zadat vlastní cestu k hlavnímu souboru baňky. Většina vývojářů ale obvykle používá pouze „__name__“ a zdá se, že jde o standardní postup.
Dále aplikace „dekorace“.route “je připojeno k funkci„ hello_world_app “. Funkce zdobení rozšiřují nebo upravují funkci, ke které jsou připojeny, aniž by je skutečně měnily. Tady „aplikace.Route ”decorator se používá k určení cesty URL, kde bude spuštěna připojená funkce. Symbol „/“ říká Flaskovi, aby provedl funkci na „/“ URL, což znamená „root“ doména nebo „root“ URL. Například pokud je adresa URL vaší aplikace „app.com “, funkce bude spuštěna pro„ app.com “URL. Můžete to také změnit na něco jiného. Například pomocí dekorátoru „@app.route ('/ helloworld') “, můžete funkci namapovat na„ app.com / helloworld ”URL.
Nakonec se funkce „hello_world_app“ používá k vrácení obsahu, který chcete zobrazit ve webovém prohlížeči, když je spuštěna vaše webová aplikace.
Spuštění aplikace Flask
Chcete-li spustit aplikaci Flask v systému Linux, musíte spustit příkaz v následujícím formátu:
$ export FLASK_APP = hlavní.py$ baňka
Změnit „hlavní.py “název podle potřeby, aby odpovídal vašemu vlastnímu .Soubor „py“, do kterého jste napsali svůj kód baňky. Druhý příkaz spustí vaši aplikaci Flask. Můžete také spustit tento alternativní příkaz:
$ FLASK_APP = hlavní.py baňka běhPo spuštění těchto příkazů byste měli vidět nějaký takový výstup:
Stačí otevřít adresu URL uvedenou v terminálu ve webovém prohlížeči, abyste viděli svou aplikaci v akci.
Aplikaci Flask můžete spustit v režimu ladění pomocí proměnné prostředí „FLASK_ENV“ v následujícím formátu:
$ FLASK_ENV = vývoj FLASK_APP = hlavní.py baňka běhPoužívání Jinja2 Template Engine
Flask používá „Jinja2“ k vytváření šablon pro usnadnění psaní HTML kódu v Pythonu. Můžete jej použít k nastavení značky pro „Hello World!!“Zpráva.
Vytvořte nový adresář s názvem „šablony“, kde je umístěn váš hlavní skript Flask. V adresáři „template“ vytvořte nový soubor s názvem „hw_template.html “. Otevřete „hw_template.html ”a vložte do něj následující kód:
% pokud barva%
Ahoj světe!!
% else%
Ahoj světe!!
% endif%
Tento kód je napsán v syntaxi, které „Jinja2“ rozumí. Můžete si prostudovat dokumentaci „Jinja2“, která je k dispozici zde. Značka šablony zkontroluje, zda jí byla předána proměnná s názvem „barva“ nebo ne. Pokud ano, změní barvu „Hello World!!„Zpráva používající hodnotu z proměnné„ color “, která jí byla předána.
Chcete-li předat proměnnou do šablony „Jinja2“, musíte napsat kód v následujícím formátu:
@aplikace.trasa('/')def hello_world_app ():
vrátit render_template ('hw_template.html ', color = "red")
Metoda „render_template“ se používá k vykreslení značek ze souboru šablony „Jinja2“. Můžete jej zadat název šablony, kterou chcete vykreslit, a všechny argumenty, které chcete předat šabloně. „Hw_template.html ”šablona použitá výše zpracovává„ barevnou “proměnnou poté, co jí Flask kód předá„ barevnou “proměnnou s hodnotou„ červená “. Po spuštění výše uvedeného ukázky kódu byste měli získat následující výsledek:
Hodnoty proměnných můžete předat také ze samotné adresy URL. Podívejte se na ukázku kódu níže:
@aplikace.trasa('/')@aplikace.trasa('/
def hello_world_app (color = "blue"):
vrátit render_template ('hw_template.html ', color = color)
K funkci „hello_world_app“ jsou připojeny dvě cesty nebo trasy URL. Když navštívíte kořenovou doménu (příklad „aplikace.com “), uvidíte„ Hello World!!„Zpráva v modré barvě jako výchozí hodnota proměnné„ color “je definována jako„ modrá “a toto je hodnota, kterou předáváte také šabloně„ Jinja2 “.
Druhá cesta definovaná „@app.trasa('/
Například „Hello World !!Zpráva „se při návštěvě aplikace změní na červenou.com / red “URL, ale při návštěvě„ aplikace “zůstane modrá.com “URL. Zde je srovnání vedle sebe:
Závěr
Flask je výkonný rámec pro vývoj webových aplikací, který lze použít k vytváření jednoduchých i pokročilých aplikací. Tento výukový program vysvětluje hlavně vytvoření jednoduchého „Hello World!!" aplikace. Můžete jej připojit k databázi a použít rozšíření k dalšímu rozšíření jeho funkčnosti. V dokumentaci Flask najdete další informace o správě databází a rozšíření.