Bottle – Ein Mikro-Framework für interaktive Webseiten¶
Das bottle-Modul bietet eine einfache Möglichkeit zum schnellen Erstellen von WSGI-basierten Webseiten („Web Server Gateway Interface“). Die eigentliche Anwendung kann dabei aus einer einzigen Datei bestehen.
Das bottle-Modul lässt sich unter Linux folgendermaßen installieren:
sudo aptitude install python3-bottle
Alternativ hierzu kann man bottle auch, sofern man das Paket
python3-setuptools via aptitude installiert hat, mittels pip3 install
bottle installieren.
Ein „Hallo Welt“-Beispiel¶
Um mittels Bottle eine einfache Webanwendung zu programmieren, genügt es, das
gleichnamige bottle-Paket oder einzelne Funktionen daraus in eine
Python-Datei zu importieren. Ein einfaches Code-Beispiel sieht somit etwa
folgendermaßen aus:
#!/usr/bin/env python3
from bottle import route, debug, run
@route('/hallo/<name>')
def hallo(name):
return 'Hallo {0}!'.format(name)
debug(True)
run()
Speichert man dieses Programm beispielsweise als Datei hallo-welt.py und
ruft es aus einer Shell heraus mittels python3 hallo-welt.py auf, so kann
man sich das Ergebnis im Webbrowser unter der Adresse
http://localhost:8080/hallo/Welt anzeigen lassen. Gibt man in diesem
Pfad einen anderen Namen als „Welt“ an, so bekommt man im Webbrowser eine
entsprechend andere Begrüßung angezeigt.
Die Funktionsweise der Bottle-Anwendung liegt darin, einen Browserpfad über
die route()-Funktion mit einer gewöhnlichen Python-Funktion zu verbinden.
Über die return-Anweisung kann wahlweise ein einfacher Text im Browser
ausgegeben oder auch eine andere Funktion aufgerufen werden, die dann
beispielsweise ein HTML-Template rendert und mit Text füllt.
Die run()-Funktion startet den von Bottle ohne weitere Abhängigkeiten
bereitgestellten WSGI-Server mit dem üblichen HTML-Standard-Port 8080; man
kann auch mittels beispielsweise run(port=8081) einen anderen Localhost-Port
vorgeben. Ruft man die Funktion run() mit der Option reloader=True auf,
so werden Änderungen unmittelbar, also auch ohne Neustart des WSGI-Servers
übernommen.
HTML-Templates¶
Möchte man nicht nur reinen Text im Webbrowser anzeigen, sondern eine Ausgabe in
HTML-Form erreichen, so kann wahlweise die im bottle-Modul bereits
integrierte SimpleTemplate-Engine genutzt werden; als Alternative dazu können
auch Jinja2, ` oder Mako eingesetzt werden, welche mittels pip3
und den gleichen Paketnamen nachinstalliert werden können (pip3 install
Jinja2).
… to be continued …
https://www.fullstackpython.com/wsgi-servers.html
Links: