2023-09-08 10:25 Doba čtení: 12 min

Python Flask Vysvětlení za 5 minut nebo méně

Python Flask představuje minimalistický rámec pro tvorbu webových aplikací v jazyce Python. Je známý svou vysokou flexibilitou a snadnou přizpůsobitelností, což z něj činí skvělou volbu pro ty, kteří se s vývojem webových aplikací teprve seznamují. Jeho popularita pramení z jednoduchosti použití při konstrukci webových serverů. Tento článek poskytuje úvod do světa Python Flask, objasňuje jeho podstatu, porovnává ho s jinými populárními frameworky a ukazuje, jak vytvořit základní aplikaci v Pythonu.

Co je Flask?

Flask je považován za lehký framework pro vývoj webových serverů v Pythonu. Na rozdíl od některých jiných řešení neklade na vývojáře omezení v podobě specifické struktury adresářů, což mu dává značnou volnost.

Jeho "bez názorový" charakter dovoluje vývojářům využívat libovolné nástroje pro úkoly jako je připojení k databázím nebo validace vstupů z formulářů.

Jak už bylo zmíněno, Flask slouží k vytváření webových serverů, což jsou softwarové systémy odpovídající na HTTP požadavky tím, že poskytují příslušná data a soubory.

Flask vs. ostatní rámce

V této sekci stručně porovnáme Flask s dalšími dvěma oblíbenými frameworky – Django a FastAPI. Zaměříme se na výhody a omezení používání Flasku oproti těmto alternativám.

Flask vs. Django

Flask je definován jako lehký mikrorámec, který poskytuje vývojářům jednoduchost a flexibilitu, umožňující tvorbu "za pochodu". Tato svoboda ovšem také znamená, že velkou část práce musí vývojář vykonat sám.

Naopak Django je framework "s bateriemi v ceně", který nabízí množství předkonfigurovaných nástrojů. To umožňuje rychlejší vývoj a nasazení aplikací. Nicméně, Django nemusí být tak flexibilní a může mít strmější křivku učení.

Z tohoto důvodu se Flask častěji využívá pro menší a střední projekty, zatímco Django nachází uplatnění u větších a složitějších aplikací.

Čtěte také: Rozdíly mezi Flask a Django

Flask vs. FastAPI

FastAPI je relativně nový framework pro tvorbu API v Pythonu. Vyznačuje se rychlostí a jednoduchostí použití, a nabízí vestavěný monitoring. Nevýhodou je však menší ekosystém a komunitní podpora, a také omezení použití pouze pro API.

Flask oproti tomu je všestrannější, protože ho lze použít jak pro API, tak i pro zobrazování statických souborů. Je lehký a relativně snadno se učí, ačkoli může být pomalejší než FastAPI.

Flask je tedy ideální pro webové aplikace, kde je nutné zobrazovat HTML, zatímco FastAPI se doporučuje pro tvorbu API.

Čtěte také: FastAPI vs. Flask: Který z těchto dvou je pro vás ten pravý?

Jak vytvořit aplikaci ve Flasku

V následující části si prakticky ukážeme, jak vytvořit jednoduchou aplikaci ve Flasku, která bude zobrazovat HTML a poskytovat data prostřednictvím API. Cílem není detailní tutoriál, ale spíše krátký náhled na proces vytváření aplikace pomocí Flasku.

Předpoklady

Pro úspěšné sledování tohoto tutoriálu se předpokládá základní znalost Pythonu 3 a také povědomí o protokolu HTTP. Nicméně, znalost HTTP není striktně vyžadována.

K tomu, abyste mohli aplikaci ve Flasku vytvořit, je nutné mít nejprve nainstalovaný Python. Pokud potřebujete návod, jak na to, zde je video, které vás provede:

Vytvoření virtuálního prostředí

Začněte tím, že si vytvoříte složku pro váš projekt. Jelikož používám Bash terminál, vytvořím složku příkazem:

mkdir flask-tut

Následně do této složky přejděte pomocí:

cd flask-tut

Po přesunu do správné složky vytvoříte virtuální prostředí pomocí:

python3 -m venv venv

Tento příkaz by měl vytvořit novou složku 'venv', kterou si můžete ověřit příkazem:

ls

Aktivace virtuálního prostředí

Pro aktivaci virtuálního prostředí použijte v Bash terminálu příkaz:

source venv/bin/activate

Váš terminál by se měl změnit z '$' na '(venv) $'.

Další informace o virtuálních prostředích v Pythonu najdete v tomto článku.

Instalace Flask

Nyní, když je virtuální prostředí aktivováno, můžeme nainstalovat Flask pomocí pip:

pip install Flask

Tento příkaz stáhne potřebné soubory a nainstaluje všechny závislosti.

Zobrazení HTML obsahu

Nyní můžeme začít pracovat na souboru 'main.py', který bude vstupním bodem naší aplikace.

touch main.py

Otevřete soubor v textovém editoru a vložte následující kód:

from flask import Flask

app = Flask(__name__)

@app.route("/")
def index():
    return '<h1>Zdravím z Flask!</h1>'

V tomto kódu jsme nejprve importovali třídu Flask. Následně jsme vytvořili instanci třídy a předali proměnnou '__name__', což je interní proměnná uchovávající název aktuálního modulu. Flask tuto informaci potřebuje, aby věděl, kde má hledat soubory. Instanci Flasku jsme uložili do proměnné 'app'.

Poté jsme definovali funkci 'index', která vrací HTML, které chceme zobrazit uživateli. Před definicí funkce jsme použili dekorátor '@app.route', který transformuje běžnou funkci na funkci zobrazení Flask. To znamená, že návratová hodnota funkce bude interpretována jako HTML odpověď.

Pro spuštění aplikace použijte příkaz:

flask --app main run

Parametr '--app' udává, kde se nachází naše aplikace, v tomto případě v souboru 'main.py'. Server by se nyní měl spustit.

Pokud nyní otevřete prohlížeč na adrese http://localhost:5000 nebo http://127.0.0.1:5000, měli byste vidět nadpis h1:

Psaní HTML v Python kódu není ideální. Proto je lepší oddělit HTML od Pythonu. V následující sekci se podíváme na to, jak zobrazovat samostatné HTML soubory.

Zobrazení HTML souboru

V této sekci si ukážeme, jak zobrazit soubor 'index.html'. Nejprve vytvořte soubor 'index.html' ve složce 'templates', protože v této složce Flask standardně hledá HTML šablony:

touch template/index.html

Následně otevřete soubor a přidejte do něj tento kód:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Webová stránka Flask</title>
  </head>
  <body>
	<h1>Zdravím z Flask!</h1>
  </body>
</html>

Nyní znovu otevřete soubor 'main.py' a přidejte následující import na začátek, hned za import z Flask:

from flask import render_template

Funkce 'render_template' nám umožňuje zobrazovat HTML šablony. Pro zobrazení souboru 'index.html' upravte funkci 'index' takto:

@app.route("/")
def index():
    return render_template('index.html')

Zastavte server (Ctrl + C) a znovu ho spusťte:

flask --app main run

Po načtení prohlížeče byste měli vidět následující:

V tomto případě zobrazujeme statickou HTML stránku. S Flaskem můžete také zobrazovat dynamické šablony, založené na šablonovacím jazyku Jinja, které ale z důvodu stručnosti zde nebudeme probírat. Níže ale najdete zdroje pro další studium Flasku.

Vytvoření API trasy

Zobrazování HTML obsahu je pouze jednou z funkcí webových aplikací. Druhou je poskytování dat prostřednictvím API. Nastavení API tras ve Flasku je velmi snadné. Přidejte do souboru 'main.py' následující kód, který vytvoří API trasu na '/data':

@app.route('/data')
def data():
    return { "status": "OK", "msg": "Zdravím z Flask API" }

Pokud funkce vrací slovník nebo seznam, je automaticky konvertován do formátu JSON a odeslán jako odpověď. Po restartu serveru a otevření http://localhost:5000/data byste měli vidět následující:

Zdroje pro studium Flasku

❇️ Oficiální dokumentace Flask je vynikajícím a nejspolehlivějším zdrojem pro studium. Je přehledně strukturovaná a jasně srozumitelná.

❇️ freeCodeCamp má také skvělé video na YouTube věnované Flasku. freeCodeCamp je známý svými bezplatnými a kvalitními studijními materiály.

❇️ Tento kurz na Udemy je dobrým způsobem, jak se naučit, jak vytvářet podniková API ve Flasku. Zahrnuje nástroje jako Flask-SQLAlchemy a Flask-Smorest.

Závěr

Tento článek byl stručným úvodem do Python Flask. Objasnili jsme jeho podstatu, porovnali ho s jinými webovými frameworky a vytvořili jednoduchou aplikaci. Na závěr jsme připojili zdroje pro další studium.

V dalším kroku si můžete prostudovat, jak zabezpečit Flask REST API pomocí JWT (JSON Web Token).

Petra Kovářová
Autor
Czechia

Sleduje mobilní technologie, Android/iOS a praktické návody pro uživatele.

Předchozí článek
13 nejlepších interních SSD pro zvýšení výkonu vašeho počítače
Další článek
8 tipů a triků, které potřebujete vědět