Flask

Z Wikipedie, otevřené encyklopedie
Skočit na navigaci Skočit na vyhledávání
Flask
Logo
VývojářArmin Ronacher
Aktuální verze2.0.1 (21. května 2021)
Operační systémmultiplatformní software
Vyvíjeno vPython
Typ softwaruwebový aplikační framework
Licence3-clause BSD License
Webflask.palletsprojects.com
Některá data mohou pocházet z datové položky.

Flask je mikro webový framework napsaný v programovacím jazyce Python. Je klasifikován jako mikro webový framework, protože nevyžaduje konkrétní nástroje ani další vnitřní knihovny. Nemá žádnou vrstvu abstrakce databáze, ověřování formulářů ani žádné jiné komponenty třetích stran poskytující běžné funkce.

Flask však podporuje rozšíření, která mohou přidávat do aplikace další funkce, jako by byly implementovány v samotném Flasku. Existují rozšíření pro objektově-relační mapovače, ověřování formulářů, zpracování nahrávání, různé technologie otevřeného ověřování a několik dalších souvisejících nástrojů pro tvorbu webových aplikací.[1]

Mezi aplikace využívající Flask patří například služba Pinterest a LinkedIn.[2][3]

V základu je založen na Pocoo projektech, knihovně nástrojů Werkzeug a šablonovacímu systému Jinja2.

Werkzeug[editovat | editovat zdroj]

Werkzeug je knihovna nástrojů pro programovací jazyk Python, jinými slovy sada nástrojů pro aplikace Web Server Gateway Interface (WSGI), a je licencována na základě licence BSD. Werkzeug může realizovat softwarové objekty pro funkce požadavků, odpovědí a obslužných programů.[4]

Jinja2[editovat | editovat zdroj]

Šablonovací systémy umožňují uživateli generovat požadovaný typ obsahu, jako je například HTML, s použitím některých datových a programovacích chytrých konstrukcí. Pro manipulaci s výstupem je tedy možné zajistit podmínky a cykly. Šablony jsou vytvořeny vývojářem a následně zpracovány šablonovacím systémem. Při tomto procesu jsou přepsány značky a bloky, které jsou nahrazeny výstupními daty.[5]

Flask využívá šablonovací systém Jinja2. Jinja2 je moderní šablonovací jazyk pro Python, který je modelovaný podobně podle šablon Django. Je rychlý, široce používaný a bezpečný.[6] Pro přístup k proměnným se používají dvojité složené závorky. Pro podmínky a cykly se používá složená závorka a znak procenta.

Historie[editovat | editovat zdroj]

Framework Flask byl vytvořen programátory Arminem Ronacherem a Georgem Brandlem z týmu Pocoo, mezinárodní skupiny nadšenců Pythonu, která vznikla v roce 2004. Podle Ronachera byla tato myšlenka původně vtipem z Aprílu, který byl natolik populární, že se nakonec stal seriózní aplikací.[7]

Flask se stal populární mezi vývojáři Pythonu. V říjnu roku 2020 měl na GitHubu druhé místo v rámci vývojových frameworků v Pythonu, jen mírně za Djangem, a byl zvolen nejpopulárnějším webovým frameworkem v průzkumu Python Developers Survey 2018.[8]

Základní funkce[editovat | editovat zdroj]

  • Vývojový server a debugger
  • Integrovaná podpora pro testování jednotek (Unit testing)
  • Flask RESTful API
  • Používá šablonování Jinja2
  • Podpora zabezpečených cookies
  • 100% WSGI 1.0 kompatibilní
  • Založeno na kódování Unicode
  • Rozsáhlá dokumentace
  • Kompatibilita s Google App Engine

Flask-RESTful API[editovat | editovat zdroj]

Flask-RESTful je rozšíření FW Flasku, které přidává abstraktní podporu pro rychlé vytváření REST požadavků (API). Jedná se v poměru o tenkou vrstvu abstrakce, která by měla fungovat s existujícím ORM a dalšími knihovnami. Flask-RESTful je navržen tak, aby ho uživatelé, kteří znají Flask co nejrychleji pochopili. Za vývojem Flask-RESTful stojí firma Twilio, ale přispělo do něj více než sto jednotlivců. Je zveřejněn pod BSD licencí. Závisí na Flasku a dalších třech modulech. Celkově tak nepřímo závisí na ostatních modulech. Na GitHubu má necelých šest tisíc hvězd. [9] Toto rozšíření podporuje obě verze Pythonu.

Příklad zdrojového úryvku[editovat | editovat zdroj]

from flask import Flask, render_template
app = Flask(__name__)

@app.route("/")
def hello():
    return "Ahoj Světe!"

if __name__ == "__main__":
    app.run(debug=True)

Reference[editovat | editovat zdroj]

  1. Extensions — Flask Documentation (1.1.x). flask.palletsprojects.com [online]. [cit. 2020-12-26]. Dostupné online. 
  2. Steve Cohen's answer to What challenges has Pinterest encountered with Flask? - Quora. www.quora.com [online]. [cit. 2021-01-03]. Dostupné online. 
  3. Rachel Sanders: Developing Flask Extensions - PyCon 2014 - YouTube. www.youtube.com [online]. [cit. 2021-01-03]. Dostupné online. 
  4. Werkzeug. Pallets [online]. [cit. 2020-12-26]. Dostupné online. 
  5. Template Engines. www.fullstackpython.com [online]. [cit. 2021-01-04]. Dostupné online. (anglicky) 
  6. Jinja — Jinja Documentation (2.11.x). jinja.palletsprojects.com [online]. [cit. 2021-01-04]. Dostupné online. 
  7. History — Pocoo. web.archive.org [online]. 2017-11-19 [cit. 2020-12-26]. Dostupné online. 
  8. Python Developers Survey 2018 Results. JetBrains [online]. [cit. 2020-12-26]. Dostupné online. (anglicky) 
  9. flask-restful/flask-restful. github.com [online]. 2021-01-04 [cit. 2021-01-04]. Original-date: 2012-10-12T00:08:51Z. Dostupné online. 

Externí odkazy[editovat | editovat zdroj]