Bottle: Das ultimative Tutorial zum Python-Microframework
Einführung in Bottle
Bottle ist ein minimalistisches Python-Microframework für die Entwicklung von Webanwendungen und REST APIs. Das gesamte Framework besteht aus einer einzigen Datei mit weniger als 100 KB – ideal für kleine Projekte, Prototypen, eingebettete Systeme und Microservices. Bottle liefert alle notwendigen Komponenten für eine vollwertige Webanwendung ohne externe Abhängigkeiten.
Funktionen und Vorteile von Bottle
Leichtgewichtig und einfach
Bottle benötigt keine externen Abhängigkeiten und ist mit einem Befehl installiert. Das Framework besteht aus nur einer Datei, was die Bereitstellung und das Verständnis des Codes vereinfacht.
Integrierte Funktionen
- Eingebauter HTTP-Server für die Entwicklung
- Eigene Template-Engine: SimpleTemplate Engine
- WSGI-Unterstützung für den Produktionseinsatz
- Automatische Typenerkennung für Routenparameter
- Verarbeitung von JSON, Formularen, Dateien und Cookies
Architektonische Flexibilität
Bottle ist mit allen gängigen Python-Bibliotheken für Datenbanken, Template-Engines und WSGI-Server kompatibel. So lässt es sich problemlos in bestehende Systeme integrieren.
Installation und grundlegende Einrichtung
Bottle installieren
pip install bottle
Erste Anwendung erstellen
Erstelle eine Datei app.py:
from bottle import route, run
@route('/')
def index():
return "Hallo von Bottle!"
@route('/hello/<name>')
def greet(name):
return f"Hallo, {name}!"
if __name__ == "__main__":
run(host='localhost', port=8080, debug=True)
Anwendung starten
python app.py
Die Anwendung ist unter http://localhost:8080 erreichbar.
Routing und Anfrageverarbeitung
Basis-Routen
from bottle import route, get, post, put, delete
@route('/')
def home():
return "Startseite"
@get('/users')
def get_users():
return "Benutzerliste"
@post('/users')
def create_user():
return "Benutzer erstellen"
@put('/users/<id:int>')
def update_user(id):
return f"Benutzer {id} aktualisieren"
@delete('/users/<id:int>')
def delete_user(id):
return f"Benutzer {id} löschen"
Routenparameter
Bottle unterstützt verschiedene Parametertypen:
@route('/user/<id:int>')
def user_by_id(id):
return f"Benutzer-ID: {id}"
@route('/article/<slug:path>')
def article_by_slug(slug):
return f"Artikel: {slug}"
@route('/price/<amount:float>')
def price(amount):
return f"Preis: {amount}"
@route('/profile/<username:re:[a-zA-Z0-9_]+>')
def profile(username):
return f"Profil: {username}"
Query-Parameter verarbeiten
from bottle import request
@route('/search')
def search():
query = request.query.get('q', '')
category = request.query.get('category', 'all')
return f"Suche nach '{query}' in Kategorie '{category}'"
Anfragedaten verarbeiten
Formulare verarbeiten
from bottle import request, post
@post('/submit')
def submit_form():
name = request.forms.get('name')
email = request.forms.get('email')
age = request.forms.get('age', type=int)
return f"Daten empfangen: {name}, {email}, {age}"
Mit JSON arbeiten
from bottle import request, response
@post('/api/data')
def handle_json():
data = request.json
# Daten verarbeiten
result = {
'status': 'success',
'received': data,
'message': 'Da Auch in der Bibliothek
Arbeiten mit ZIP/Archiven in Swift (iOS/macOS): vollständige Anleitung
GraphQL-Bibliothek für C++: API-Implementierung mit graphql-cpp
Arbeit mit S3 und Cloud-Speichern in C# (.NET): AWS SDK-Bibliothek
gRPC für Kotlin: Bibliotheken, Server und Client – Codebeispiele