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: