Flask
| Flask
| |
|---|---|
| colspan="2" class="notheme" style="text-align:center; background:#Vorlage:Standardfarbe; color:#202122;" | Datei:Flask logo.svg | |
| Basisdaten
| |
| Maintainer | Skriptfehler: Ein solches Modul „Wikidata“ ist nicht vorhanden. |
| Entwickler | Armin Ronacher<ref>Vorlage:Cite book/Name: [Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden.] Skriptfehler: Ein solches Modul „DateTime“ ist nicht vorhanden., archiviert vom Vorlage:Referrer (nicht mehr online verfügbar) am Vorlage:Cite book/URL (Skriptfehler: Ein solches Modul „Multilingual“ ist nicht vorhanden.).Vorlage:Cite book/URLVorlage:Cite book/MeldungVorlage:Cite book/Meldung2Vorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/Meldung</ref> |
| Erscheinungsjahr | 1. April 2010 |
| Aktuelle Version | Skriptfehler: Ein solches Modul „Wikidata“ ist nicht vorhanden. (Skriptfehler: Ein solches Modul „Wikidata“ ist nicht vorhanden.) |
| Aktuelle Vorabversion | Skriptfehler: Ein solches Modul „Wikidata“ ist nicht vorhanden. (Skriptfehler: Ein solches Modul „Wikidata“ ist nicht vorhanden.) |
| Betriebssystem | plattformübergreifend |
| Programmiersprache | Python |
| Kategorie | Webframework |
| Lizenz | BSD-Lizenz |
| palletsprojects.com/p/flask/ | |
Flask ist ein in Python geschriebenes Webframework. Sein Fokus liegt auf Erweiterbarkeit und guter Dokumentation. Die einzigen Softwareabhängigkeiten (engl. dependency) sind Jinja2, eine Template-Engine, und Werkzeug, eine Softwarebibliothek zum Erstellen von WSGI-Anwendungen.
Geschichte[Bearbeiten]
Die Entwicklung von Flask begann 2010 als Aprilscherz unter dem Namen "Denied".<ref name="openingflask">Vorlage:Cite book/NameVorlage:Cite book/Name: [Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden.] (PDF; 2,8 MB) Skriptfehler: Ein solches Modul „DateTime“ ist nicht vorhanden., archiviert vom Vorlage:Referrer (nicht mehr online verfügbar) am Vorlage:Cite book/URL (Skriptfehler: Ein solches Modul „Multilingual“ ist nicht vorhanden.).Vorlage:Cite book/URLVorlage:Cite book/MeldungVorlage:Cite book/Meldung2Vorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/Meldung</ref><ref name="april1spostmortem">Vorlage:Cite book/NameVorlage:Cite book/Name: [Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden.] Skriptfehler: Ein solches Modul „DateTime“ ist nicht vorhanden., archiviert vom Vorlage:Referrer (nicht mehr online verfügbar) am Vorlage:Cite book/URL (Skriptfehler: Ein solches Modul „Multilingual“ ist nicht vorhanden.).Vorlage:Cite book/URLVorlage:Cite book/MeldungVorlage:Cite book/Meldung2Vorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/Meldung</ref> Aufgrund der überraschend großen Anzahl an positiven Rückmeldungen startete der österreichische Softwareentwickler Armin Ronacher das Projekt "Flask".
Funktionsweise[Bearbeiten]
Flask kommuniziert über die WSGI-Schnittstelle, derzeit die aktuelle Entwicklung für die Kommunikation zwischen Webserver und Webanwendungen im Python-Umfeld. Für Testzwecke und während der Entwicklung kann der von Flask mitgelieferte Webserver verwendet werden.
Im Gegensatz zu anderen Frameworks, wie zum Beispiel Django oder Web2py, stellt Flask keine Komponenten zur Verfügung, für die bereits Lösungen existieren, sondern erlaubt es, bestehende Bibliotheken einfach zu integrieren. Dadurch kann die Kernfunktionalität von Flask einfach und minimal gehalten werden. Es existieren Erweiterungen für die meisten gängigen Funktionen,<ref name="flaskextensions">Vorlage:Cite book/Name: [Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden.] Skriptfehler: Ein solches Modul „DateTime“ ist nicht vorhanden., archiviert vom Vorlage:Referrer (nicht mehr online verfügbar) am Vorlage:Cite book/URL (Skriptfehler: Ein solches Modul „Multilingual“ ist nicht vorhanden.).Vorlage:Cite book/URLVorlage:Cite book/MeldungVorlage:Cite book/Meldung2Vorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/Meldung</ref> wie zum Beispiel:
- Handhabung von Authentifizierung, Cookies, Sessions
- konfigurierbares Caching
- Internationalisierung
- eine Abstraktionsschicht für Datenbanken, die dynamisch SQL erzeugt (ORM, Object-Relational Mapping)
- Kompatibilität zu vielen Datenbanksystemen (derzeit Informix IDS, Db2, Drizzle, Firebird, SAP MaxDB, Microsoft Access, Microsoft SQL Server, MySQL, Oracle Database, PostgreSQL, SQLite und Sybase ASE, MongoDB)
Verwendung[Bearbeiten]
Eine Vielzahl von Anwendungen basiert auf Flask.<ref>Vorlage:Cite book/Name: [Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden.] Skriptfehler: Ein solches Modul „DateTime“ ist nicht vorhanden., archiviert vom Vorlage:Referrer (nicht mehr online verfügbar) am Vorlage:Cite book/URL (Skriptfehler: Ein solches Modul „Multilingual“ ist nicht vorhanden.).Vorlage:Cite book/URLVorlage:Cite book/MeldungVorlage:Cite book/Meldung2Vorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/Meldung</ref> Flask ist mit zahlreichen Platform-as-a-Service-Diensten, wie Google App Engine<ref>Vorlage:Cite book/NameVorlage:Cite book/Name: [Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden.] Skriptfehler: Ein solches Modul „DateTime“ ist nicht vorhanden., archiviert vom Vorlage:Referrer (nicht mehr online verfügbar) am Vorlage:Cite book/URL (Skriptfehler: Ein solches Modul „Multilingual“ ist nicht vorhanden.).Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden.Vorlage:Cite book/URLVorlage:Cite book/MeldungVorlage:Cite book/Meldung2Vorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/Meldung</ref> oder Heroku<ref>Vorlage:Cite book/Name: [Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden.] Skriptfehler: Ein solches Modul „DateTime“ ist nicht vorhanden., archiviert vom Vorlage:Referrer (nicht mehr online verfügbar) am Vorlage:Cite book/URL (Skriptfehler: Ein solches Modul „Multilingual“ ist nicht vorhanden.).Vorlage:Cite book/URLVorlage:Cite book/MeldungVorlage:Cite book/Meldung2Vorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/Meldung</ref>, kompatibel.
Beispiel[Bearbeiten]
Der folgende Quelltext stellt eine einfache Webanwendung dar, die auf der Startseite Hallo Welt ausgibt: <syntaxhighlight lang="python"> from flask import Flask app = Flask(__name__)
@app.route("/") def hello():
return "Hallo Welt"
if __name__ == "__main__":
app.run()
</syntaxhighlight>
Render Template mit Flask[Bearbeiten]
<syntaxhighlight lang="python"> from flask import Flask, render_template
app = Flask(__name__)
@app.route("/") def message():
nachricht = "Hallo Welt!"
return render_template("index.html", nachricht=nachricht)
if __name__ == "__main__":
app.run()
</syntaxhighlight>
Jinja im HTML für das Rendertemplate[Bearbeiten]
Der folgende Quelltext wird im Verzeichnis Templates abgelegt.
<syntaxhighlight lang="html"> <!DOCTYPE html> <html lang="de"> <head>
<meta charset="UTF-8"> <title>Nachricht</title>
</head> <body>
</body> </html> </syntaxhighlight>
Siehe auch[Bearbeiten]
- Django (Python Web Framework)
- TurboGears (Python Web Framework, das standardmäßig SQLAlchemy als ORM benutzt)
- web2py (Python Web Framework)
- Bottle (Python Web Micro Framework)
Weblinks[Bearbeiten]
- Flask (englisch)
- Einführung in Flask (englisch)
- Dokumentation (englisch)
- Präsentation von Flask auf der Pycon Atlanta 2011 (englisch)
- Anleitung für Internationalisierung mit Flask (englisch)
Einzelnachweise[Bearbeiten]
<references />