Flask – Webapps mit Python Framework Flask

Webframeworks nehmen uns bei der Entwicklung von Webanwendungen viel Arbeit ab und ersparen es uns grundlegende Mechanismen eigenhändig zu implementieren. In diesem Artikel stelle Ich euch ein minimalistisches und sehr flexibles Framework für Python vor namens Flask.

Wie Flask arbeitet, aus welchen Komponenten es besteht und wie ihr eure erste „Hello World“- Anwendung mit Flask programmieren könnt, all dies erfahrt ihr im folgenden Blogbeitrag.


1.Was ist Flask und wie funktioniert es

Flask ist ein Webframework für Python, das für die Programmierung von Webapplikationen genutzt wird und in den letzten Monaten stark an Bekanntheit gewonnen hat. Im Gegensatz zu anderen bekannten Frameworks wie z.B. Django besteht Flask nur aus den grundlegenden Funktionen und Komponenten, die für unsere Webanwendung nötig sind. Bei allen weiteren Bereichen wie z.B. die Handhabung von Cookies oder der Datenbankanbindung lässt euch das Framework offen, welches System ihr nutzen wollt und wie ihr es ergänzen möchtet. Dies macht die Entwicklung flexibler und sorgt dafür, dass die Kernfunktionen des eigentlichen Frameworks minimal gehalten werden.

1.1 Worauf basiert Flask?

Für die Kommunikation zwischen Webanwendung und Webserver nutzt Flask die WSGI-Schnittstelle. Dieses Interface legt fest, wie dieser Austausch aussehen soll und wie dies in Python implementiert wird. Für die Verwendung dieser Schnittstelle nutzt Flask ein eigenes Modul namens Werkzeug.

Wenn ihr mehr über diese Schnittstelle erfahren möchtet, könnt ihr hier die Details und die Hintergründe nachlesen.

Ein weiterer Bestandteil des Frameworks ist die Template-Engine Jinja2. Eine solche Engine hat die Aufgabe Template-Dateien (meist HTML-Dateien mit bestimmen Platzhaltern) zu verarbeiten und an die Stellen der Platzhalter Werte einzusetzen und aus dieser Kombination eine neue Datei zu generieren, die zurückgegeben wird.

Beispiel: Code1 wäre unsere Vorlage (Template):

<body><p>Hallo {name}, wie geht es dir?</p></body>

Der Platzhalter wäre also „name“. Nun haben wir ein Skript, das an diese Stelle einen konkreten Wert einsetzten möchte. Dafür ist nun die Engine zuständig.

Unser Skript:

$template->assign('name', 'Stani’);

Die Engine erzeugt aus der Vorlage und dem Code nun eine neue Datei, bei der die Platzhalter gefüllt wurden. Diese Datei ist jetzt im gewünschten Format und bereit weiterverarbeitet zu werden.

Fertige Datei:

<body><p>Hallo Stani, wie geht es dir?</p></body>

Ein kleines Beispiel wäre die folgende Webanwendung: Der Nutzer gibt in ein Feld seinen Namen ein und drückt daraufhin den Button. Nun erzeugt unsere Anwendung eine neue HTML Seite, die den Satz anzeigt, den wir eben als Vorlage genutzt hatten.

Im Hintergrund passiert hier genau das, was eben erklärt wurde.

2.Installation

Am schnellsten lässt sich Flask mit PIP installieren.

pip install Flask==1.0.2

Alternativ könntet ihr auch die Source files herunterladen. Auf dieser Webseite findet ihr das komplette Projekt mit allen Dateien.

3.Aufbau eines Flask Programms

Alle Webanwendungen, die ihr mit dem Framework programmiert, werden einen ähnlichen Aufbau besitzen. Die Haupt-Datei eurer Anwendung, die wir uns hier ansehen werden, beinhaltet alle Regeln zum URL-Routing.

URL-Routing beschreibt hierbei eine Zuordnung von Funktionen und Methoden (in Python) zu bestimmten URLs oder anders gesagt zu Pfaden auf eurem Webserver. Ihr könnt also festlegen, welcher Code ausgeführt wird, wenn ein bestimmter Pfad aufgerufen wird. Diese Zuordnung erfolgt durch einen Decorator. In unserem Beispiel haben wir eine Routing Regel festgelegt. Wird der Pfad „/“ aufgerufen wird die Methode hello_world() ausgeführt und die Rückgabe der Methode wird auf der zugehörigen Webseite zur URL ausgegeben.

Alternativ zu dem Decorator können wir auch über die Methode add_url_rule die Routing Regel festlegen.

Nun würde dem Pfad die Methode index() zugeordnet werden.

app.add_url_rule('/', 'index', index)

Die restlichen Zeilen des Programmes sorgen dafür, dass ein Webserver gestartet wird, auf dem unser Code ausgeführt wird. Die Instanz „app“ von der Klasse Flask ist unsere WSGI-Applikation und gleichzeitig der zentrale Punkt unserer Anwendung. Über dieses Objekt werden alle Routing Regeln festlegt und z.B. auch Template Konfigurationen angegeben.

Als Parameter für den Konstruktor der Klasse Flask geben wir das Modul an, in dem die Applikation laufen wird. Über diesen Namen weiß das Framework nun, wo es nach Template-Dateien und anderen Ressourcen suchen muss, die zum Programm gehören sollen.

Mit der Methode run() starten wir den lokalen Entwicklungs-Server, den Flask automatisch mit sich bringt und führen auf diesem Server unsere Anwendung aus. Den Port legen wird über den gleichnamigen Parameter fest. Die Host-Adresse ist standartmäßig auf 127.0.0.1 gesetzt, kann aber auch, wie der Port, geändert werden.

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return '<h1>Hello, World!</h1>'

if __name__ = '__main__':
    app.run(port=5000, debug=true)

Führen wir das Skript schließlich aus, sollten wir über den Browser auf unsere Anwendung zugreifen können. Dafür einfach die vollständige Adresse samt Port als URL eingeben. Dabei wird der Pfad „/“ automatisch aufgerufen.

Wollten wir nun unser Programm ergänzen und zum Beispiel für den Pfad /start eine Seite anzeigen lassen, müssten wir einfach eine neue Methode definieren und über den Decorator app.route(‘/start’) dem Pfad zuordnenden lassen.

Nun sind wir soweit, dass wir über die nächsten Schritte nachdenken könnten. Ein wichtiger Bereich, der essenziell für eure Webanwendung mit Flask seien wird sind Templates. Zu diesem Thema gibt es bereits ein weiteres Tutorial auf Mediasuche.de. Über diesen Link gelangt ihr direkt dort hin.

Weitere Bereiche sind Webforms, die Datenbankanbindung, Cookies und mehr. Wie bereits gesagt steht euch bei diesen Themen vieles offen. Das Framework schränkt eure Wahl für z.B. ein Cookie System kaum ein und lässt euch offen wie ihr eure Anwendung hinsichtlich Cookies, Datenbanken etc. gestalten möchtet.


Wer sich weitergehend informieren möchte und mehr über die Entwicklung mit Flask lernen möchte, kann sich dieses Buch ansehen. Hier wird in 18 Kapiteln jedes Detail des Frameworks durchleuchtet und anhand von guten und anschaulichen Beispielen erklärt.


, , , markiert

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Dies ist ein Demo-Shop für Testzwecke — Bestellungen werden nicht ausgeführt. Ausblenden