Definition Was ist Flask?

Autor / Redakteur: Dipl.-Ing. (FH) Stefan Luber / Nico Litzel

Flask ist ein schlankes Mikro-Webframework zum Programmieren von Webanwendungen mit Python. Es wurde von dem österreichischen Open-Source-Entwickler Armin Ronacher entworfen. Das Framework ist als Bibliothek für Python installierbar und verfolgt einen minimalistischen Ansatz. Es benötigt das WSGI-Toolkit „Werkzeug“ und die Template-Engine „Jinja“. Die Software steht unter BSD-Lizenz und ist frei verfügbar.

Firmen zum Thema

(Bild: © aga7ta - stock.adobe.com)

Flask ist der Name eines Frameworks für Webanwendungen. Es ist aus einer am 1.4.2012 veröffentlichten und als Aprilscherz gedachten Entwicklung mit dem Namen „Denied“ hervorgegangen. Programmiert hat die Bibliothek für Python der österreichische Open-Source-Entwickler Armin Ronacher.

Das Framework ist schlank gehalten und verfolgt einen minimalistischen Ansatz. Der Entwickler bezeichnet es daher auch als Mikro-Webframework. Heute zählt Flask neben Django zu den beliebtesten und verbreitetsten Webframeworks für Python. Flask ist so konzipiert, dass es im Kern möglichst einfach gehalten ist und keine unnötigen Funktionen beinhaltet. Sämtliche Funktionen, die bereits von anderen Bibliotheken abgedeckt sind, werden nicht in Flask umgesetzt, sondern lassen sich über die bestehenden Bibliotheken integrieren. Solche Funktionalitäten sind beispielsweise die Datenbankanbindung, das Caching, die Authentifizierung oder das Cookies-Handling.

Über Extensions sind die Funktionen so integriert, als wären sie in Flask selbst implementiert. Flask benötigt das WSGI-Toolkit „Werkzeug“ und die Template-Engine „Jinja“. Zur Kommunikation mit einem Webserver nutzt Flask die einheitliche Schnittstelle Python Web Server Gateway Interfaces (WSGI). WSGI sorgt für die saubere Trennung zwischen Webanwendung und Webserver. Flask steht unter freier BSD-Lizenz und lässt sich über PyPI (Python Package Index) per Paketverwaltungsprogramm pip installieren. Die aktuelle Version ist Flask 1.1.2 aus dem April 2020. Flask macht zum Erstellen von virtuellen Umgebungen Gebrauch vom venv-Modul von Python. So lässt sich für jedes Projekt eine eigene virtuelle Umgebungen mit den jeweils benötigten Python-Bibliotheken schaffen.

Die offizielle Webseite von Flask findet sich auf den Webseiten des Pallets-Projekts unter palletsprojects.com/p/flask/. Das Pallets-Projekt ist eine Sammlung weiterer Python-Bibliotheken für die Webentwicklung. Die Bibliotheken wurden ursprünglich von Armin Ronacher entwickelt. Heute wird das Pallets-Projekt von einer Community betrieben. Das Projekt hat sich zum Ziel gesetzt, die Bibliotheken zu pflegen und weiterzuentwickeln. Neben Flask managt das Pallets-Projekt Click (ein CLI Creation Kit), ItsDangerous (Transfer von sicheren Daten in unsicheren Umgebungen), Jinja (leistungsstarke Template-Engine für Python), MarkupSafe (Strings für HTML/XML-Markups) und Werkzeug (umfangreiche Bibliothek für die WSGI-Schnittstelle).

Abgrenzung der beiden Python-Webframeworks Flask und Django

Webframeworks vereinfachen die Entwicklung von Webanwendungen. Unter den zahlreichen für Python verfügbaren Frameworks zählen Flask und Django zu den beliebtesten und am häufigsten verwendeten. Hinsichtlich ihres Konzepts und Funktionsumfangs unterscheiden sich Django und Flask deutlich. Während Flask einen minimalistischen Ansatz verfolgt und als Mikro-Webframework bezeichnet wird, handelt es sich bei Django um ein sogenanntes Makro-Webframework. Django hat eine große Funktionsvielfalt in Form von Paketen direkt integriert und eignet sich für die Full-Stack-Entwicklung komplexer Anwendungen mit hoher Skalierbarkeit. Das Framework ist beispielsweise mit einem integrierten Object-Relational Mapper (ORM) ausgestattet, der den Zugriff auf eine große Anzahl von Datenbanken erlaubt. Flask hingegen verfolgt einen minimalistischen Ansatz. Funktionen, die von anderen Bibliotheken bereits abgedeckt sind, sind in dem Framework nicht enthalten. Die Komplexität des Frameworks ist deutlich geringer. Flask eignet bevorzugt für etwas einfachere Anwendungen. Der erstellte Flask-Code ähnelt einem reinen Python-Code.

Die Vorteile des Mikro-Webframeworks Flask

Der minimalistische Ansatz des Mikro-Webframeworks bietet zahlreiche Vorteile. Zu diesen Vorteilen zählen:

  • schneller Einstieg in Flask – einfach zu erlernen
  • schlankes Webframework, da keine überflüssigen Funktionen implementiert
  • leistungsfähige Template-Engine Jinja
  • der Programmcode der Webanwendungen ist einfach, strukturiert und ähnelt stark reinem Python-Code
  • Webanwendungen lassen sich in einer einzigen Python-Datei erstellen
  • eine Vielzahl an Erweiterungen ist verfügbar
  • zahlreiche gängige Funktionen wie Authentifizierung, Session- und Cookies-Handling, Datenbankanbindung oder Caching sind über vorhandene Python-Libraries integrierbar – Entwickler haben die freie Wahl, welche Bibliotheken und Tools sie für ihre Webanwendungen einsetzen möchten
  • hohe Flexibilität in der Anwendungsentwicklung – einfach an individuelle Anforderungen anpassbar
  • Nutzung des einheitlichen Python Web Server Gateway Interfaces (WSGI) – Einsatz der Webanwendungen mit verschiedenen Webservern möglich
  • frei verfügbare Open-Source-Bibliothek unter BSD-Lizenz
  • große Community im Web
  • Kompatibilität des Frameworks mit zahlreichen PaaS-Diensten in der Cloud
  • Unterstützung unabhängiger virtueller Entwicklungsumgebungen über das venv-Modul von Python

(ID:47088060)

Über den Autor