Python in der Praxis
Hinweis zu genannten Diensten und Produkten
Die auf dieser Seite genannten Firmen, Dienste und Produkte stellen keine Empfehlung dar. Es handelt sich lediglich um Beispiele zur Veranschaulichung. Es gibt zahlreiche weitere Angebote auf dem Markt, die für Ihre Zwecke ebenso oder besser geeignet sein können. Wir empfehlen, vor der Nutzung eines Dienstes die aktuellen Konditionen, Datenschutzbestimmungen und Bewertungen selbst zu prüfen.
Virtuelle Umgebungen
Wenn Sie Python-Projekte auf Ihrem eigenen Rechner entwickeln, sollten Sie für jedes Projekt eine virtuelle UmgebungEine „virtuelle Umgebung“ für Python: ein Ordner (meist .venv) mit eigenen Paketen, also Bibliotheken, für genau ein Projekt, damit sich Projekte nicht gegenseitig stören. Glossar → (Virtual Environment) verwenden. Warum?
- Verschiedene Projekte benötigen oft unterschiedliche Versionen derselben BibliothekSammlung fertiger Funktionen, die Sie in eigenen Programmen aufrufen, zum Beispiel
printfaus der Standardbibliothek von C oderget_intaus der CS50-Bibliothek. Glossar → - Ohne virtuelle Umgebungen installieren Sie alles „global“ – das führt schnell zu Konflikten
- Mit virtuellen Umgebungen hat jedes Projekt seine eigene, isolierte Sammlung von Bibliotheken
venv (in Python eingebaut)
Python bringt das Modul venv bereits mit. Die folgenden Befehle geben Sie im TerminalFenster, in dem Sie dem Computer Befehle als Text eintippen statt zu klicken. In VS Code liegt es im unteren Bereich des Fensters. Glossar → ein, und zwar im Ordner Ihres Projekts (in VS Code: Menü „Terminal“ → „New Terminal“). Wählen Sie Ihr System:
# Virtuelle Umgebung erstellen (einmal pro Projekt)
python3 -m venv .venv
# Aktivieren (in jedem neuen Terminal)
source .venv/bin/activate
# Pakete installieren – sie landen nur in dieser Umgebung
pip install flask
# Deaktivieren
deactivateOb die Umgebung aktiv ist, sehen Sie an der Eingabeaufforderung: Vor ihr steht dann (.venv).
Der Ordner .venv enthält eine Kopie des Python-InterpretersProgramm, das Quellcode liest und gleich ausführt, ohne dass Sie vorher kompilieren müssen. So laufen Python-Programme: python3 hello.py. Glossar → und alle installierten Pakete. Er sollte nicht ins GitProgramm, das frühere Stände Ihres Codes speichert, sodass Sie zu ihnen zurückkehren und mit anderen am selben Code arbeiten können. Ein Projektordner unter Git heißt Repository. Glossar →-Repository eingecheckt werden (in .gitignore eintragen).
uv (moderner und schneller)
uv ist ein modernes Tool, das pipProgramm, das Python-Pakete (fertige Bibliotheken) aus dem Internet installiert, zum Beispiel pip install flask. Glossar → und venv ersetzt und deutlich schneller ist:
Nie wahllos Skripte aus dem Internet laden und ausführen. Eine Zeile wie diese lädt ein Programm aus dem Internet und reicht es sofort zum Ausführen weiter (| bash, | iex), mit allen Rechten Ihres Benutzerkontos und ohne dass Sie es vorher sehen. Wer Ihnen so eine Zeile unterschiebt, kann damit Ihre Dateien löschen, Passwörter mitlesen oder Schadsoftware einrichten. Führen Sie sie deshalb nur aus, wenn Sie der Quelle vertrauen, und genau so, wie sie dort steht: von dieser Seite (Adressen auf inf.zone) oder von der offiziellen Seite des Programms. Zeilen aus Foren, Chats, E-Mails, Videos oder von einer KI führen Sie nie ungeprüft aus.
# uv installieren (einmalig)
# macOS/Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows:
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
# Neues Projekt erstellen
uv init mein-projekt
cd mein-projekt
# Paket hinzufügen (erstellt automatisch virtuelle Umgebung)
uv add flask
# Programm ausführen
uv run python app.py
# Oder: Flask starten
uv run flask runuv verwaltet die virtuelle Umgebung automatisch und speichert die Abhängigkeiten in einer pyproject.toml-Datei.
Dependencies verwalten
Damit andere Personen (oder Sie selbst auf einem anderen Rechner) Ihr Projekt ausführen können, müssen die benötigten Bibliotheken dokumentiert werden.
requirements.txt (klassisch)
Die einfachste Methode ist eine requirements.txt-Datei:
Flask==3.0.0
requests==2.31.0Installation aller Abhängigkeiten:
pip install -r requirements.txtAktuelle Versionen Ihrer installierten Pakete in eine Datei schreiben:
pip freeze > requirements.txtpyproject.toml (modern)
Modernere Projekte verwenden pyproject.toml:
[project]
name = "mein-projekt"
version = "0.1.0"
dependencies = [
"flask>=3.0.0",
"requests>=2.31.0",
]
[project.optional-dependencies]
dev = [
"pytest>=7.0.0",
]Flask für Produktion
Der eingebaute Flask-Entwicklungsserver (flask run) ist nicht für den Produktivbetrieb geeignet:
- Er verarbeitet nur eine Anfrage gleichzeitig
- Er ist nicht auf Sicherheit optimiert
- Er ist langsam
Für echte Webanwendungen benötigen Sie einen WSGI-Application-Server.
Gunicorn
Gunicorn ist ein beliebter WSGI-Server für Linux/macOS:
# Installation
pip install gunicorn
# Flask-App starten (4 Worker-Prozesse)
gunicorn -w 4 app:appDie Angabe app:app bedeutet: In der Datei app.py die Variable app (Ihre Flask-Anwendung) starten.
Reverse Proxy mit nginx
In der Produktion stellt man Gunicorn typischerweise hinter einen Reverse ProxyServer, der Anfragen aus dem Internet entgegennimmt und an Ihre eigentliche Anwendung weiterreicht, die selbst nicht direkt erreichbar ist. Glossar → wie nginx:
Internet → nginx (Port 80/443) → Gunicorn (Port 8000) → Flask-Appnginx übernimmt:
- HTTPS/TLS-Verschlüsselung – Gunicorn spricht nur HTTP
- Statische Dateien – CSS, JavaScript, Bilder werden direkt ausgeliefert
- Load Balancing – Anfragen auf mehrere Gunicorn-Instanzen verteilen
- Caching – Häufig angeforderte Inhalte zwischenspeichern
Eine einfache nginx-Konfiguration:
server {
listen 80;
server_name meine-app.de;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
location /static {
alias /pfad/zu/meiner/app/static;
}
}Hosting im Internet
Es gibt verschiedene Möglichkeiten, eine Flask-App im Internet zu hosten:
Platform-as-a-Service (PaaS)
Diese Dienste kümmern sich um Server, Deployment und Skalierung:
| Dienst | Kostenloses Tier | Besonderheiten |
|---|---|---|
| Render | Ja (mit Einschränkungen) | Einfaches Deployment via Git |
| Railway | $5 Startguthaben | Sehr entwicklerfreundlich |
| Fly.io | Ja (begrenzte Ressourcen) | Container-basiert, weltweit verteilt |
| PythonAnywhere | Ja | Speziell für Python, sehr einfach |
| Heroku | Nein (früher ja) | Klassiker, aber nicht mehr kostenlos |
Beispiel: Deployment auf Render
- Erstellen Sie eine Datei
render.yamlim Projektverzeichnis:
services:
- type: web
name: meine-flask-app
env: python
buildCommand: pip install -r requirements.txt
startCommand: gunicorn app:app- Pushen Sie Ihr Projekt zu GitHub
- Verbinden Sie das Repository auf render.com
- Render baut und deployt Ihre App automatisch
Eigener Server (VPS)
Für mehr Kontrolle können Sie einen Virtual Private Server (VPS) mieten:
- Hetzner – Günstig, deutsche Server
- DigitalOcean – Gute Dokumentation
- Linode – Solide Option
Auf einem VPS müssen Sie alles selbst einrichten: Linux, Python, Gunicorn, nginx, Firewall, SSL-Zertifikate, Updates, Backups …
HTTPS mit Let’s Encrypt
Für HTTPS-Verschlüsselung können Sie kostenlose Zertifikate von Let’s Encrypt verwenden. Das Tool Certbot automatisiert die Einrichtung:
# Certbot installieren (Ubuntu/Debian)
sudo apt install certbot python3-certbot-nginx
# Zertifikat erstellen und nginx automatisch konfigurieren
sudo certbot --nginx -d meine-app.deCertbot erneuert die Zertifikate automatisch vor Ablauf.
Checkliste für Produktion
Bevor Sie eine Flask-App öffentlich zugänglich machen:
- Debug-Modus deaktivieren –
FLASK_DEBUG=0oderapp.run(debug=False) - Secret Key setzen – Zufälligen, geheimen Schlüssel für Sessions verwenden
- HTTPS aktivieren – Niemals Passwörter über unverschlüsselte Verbindungen
- Eingaben validieren – Niemals Benutzereingaben vertrauen
- SQL-Injection verhindern – Prepared Statements verwenden (wenn Sie eine DB nutzen)
- Fehlerseiten anpassen – Keine Stack Traces an Benutzer zeigen
- Logging einrichten – Fehler protokollieren für Debugging
- Backups – Regelmäßige Backups der Datenbank/Dateien
Weiterführende Ressourcen
- Flask Deployment Documentation
- The Twelve-Factor App – Best Practices für Web-Apps
- Real Python: Flask Deployment
- DigitalOcean Tutorials – Viele gute Server-Anleitungen
Diese Seite als Markdown: ansehen herunterladen