Couldn't load this page.

← Blog
Engineering

Python-App-Hosting: Django, Flask und FastAPI bereitstellen

Yura Oak
Yura Oak21. August 2026

Python-App-Hosting beginnt mit dem Prozess, den deine Anwendung zum Ausführen braucht. Django und Flask nutzen üblicherweise einen WSGI-Server; FastAPI einen ASGI-Server. Ein Celery-Worker oder ein geplantes Skript hat einen anderen Lebenszyklus. Wähle einen Host, der diese Prozesse, die Datenbank und den Speicher unterstützt, die deine App benötigt.

Lizard veröffentlicht diesen Leitfaden. Wir haben die verlinkte Framework- und Provider-Dokumentation am 9. September 2026 geprüft. Die Beispiele verwenden explizite Modulnamen, die du an dein Projekt anpassen musst.

Laufzeit vor dem Host wählen

AnwendungProduktionsprozessWeitere zu prüfende Anforderungen
Django mit WSGIGunicorn oder ein anderer unterstützter WSGI-ServerDatenbank, Migrationen, statische Dateien und Uploads
Django mit Async-FeaturesEin unterstützter ASGI-ServerVerbindungsmanagement und Kompatibilität der App-Abhängigkeiten
FlaskEin produktiver WSGI-ServerApp-Importpfad oder Factory, Secrets und Datenbank
FastAPIUvicorn oder ein anderer ASGI-ServerStartup-Aufgaben, Nebenläufigkeit und Datenbankverbindungen
Celery-WorkerEin separater Queue-ConsumerBroker, Ergebnis-Backend falls genutzt, Retries und Shutdown
Skript oder Batch-JobEin Prozess, der läuft und beendet wirdZeitplan, Timeout, Exit-Status und dauerhafte Ausgabe

Der Entwicklungsserver ist für die Entwicklung. Siehe den offiziellen Django-Bereitstellungsleitfaden, Flask-Produktionsleitfaden und FastAPI-Worker-Leitfaden.

Python-Hosting-Optionen nach Bedarf

HostWarum in Betracht ziehenVor der Wahl prüfen
LizardWeb-Services und Worker mit verwalteten Datendiensten und CLI-OperationenLaufzeiteinstellungen, Datenbankverdrahtung und gemessene Ressourcennutzung
RailwayMehrere Services in einem ProjektGesamter Service-Verbrauch und Plan-Guthaben
RenderVeröffentlichte Web- und Worker-InstanzpläneSeparate Datenbankkosten und Free-Service-Einschränkungen
PythonAnywhereEin Python-fokussierter Hosting-WorkflowWSGI/ASGI-Unterstützung, ausgehender Zugriff und Task-Limits deines Plans
Cloud RunHTTP-Services, Jobs oder Worker-PoolsRessourcentyp, Abrechnungsmodus, Nebenläufigkeit und Cold Starts
Fly.ioMaschinen in ausgewählten RegionenMaschinengröße, Speicher und Netzwerkgebühren
DigitalOcean App PlatformVerwaltetes Source-oder Image-DeploymentBuild-Unterstützung, App-Komponenten und Datenbankpreise
HerokuEin bekannter Python-Deployment-WorkflowAktueller Plan, Add-ons und Produktausrichtung
Ein VPSDirekte ServerkontrolleUpdates, Prozessmanagement, TLS, Backups und Recovery

Nutze den PaaS-Vergleich für die umfassendere Hosting-Entscheidung. Ein Python-Badge in einer Feature-Tabelle reicht nicht, um Worker- oder Datenbankunterstützung zu bestätigen.

Kostenloses Python-Hosting braucht eine Workload-Grenze

Ein Free-Plan kann ausgehende Requests beschränken, einen inaktiven Web-Prozess schlafen legen, die Task-Ausführung limitieren oder nur ein Test-Guthaben enthalten. Diese Bedingungen können für eine Demo in Ordnung sein und für einen Webhook-Empfänger oder Queue-Worker ungeeignet.

Prüfe Renders Free-Service-Regeln und PythonAnywheres Free-Account-Features. Für Cloud Run beschreibt die Preisseite kostenlose Nutzung neben abrechenbaren Ressourcen. Eine Datenbank, Image-Registry oder Netzwerknutzung kann außerhalb des Allowances bleiben, auf das du schaust.

Teste den ersten Request nach einer Ruhephase und bestätige, ob geplante oder Hintergrundarbeit noch läuft. Beschreibe die kostenlose Option in Bezug auf diese Limits, nicht als unbegrenztes Hosting.

Build- und Start-Befehle

Für ein Projekt, das requirements.txt nutzt, installiere die gepinnten Abhängigkeiten mit:

python -m pip install -r requirements.txt

Nutze den Paketmanager und Lockfile, der bereits in deinem Repository liegt, falls es uv, Poetry oder ein anderes Tool nutzt. Füge den Produktionsserver in die Abhängigkeiten ein. Verlass dich nicht auf ein Paket, das nur auf deinem Laptop installiert ist.

Für Django, wo myproject/wsgi.py die Anwendung definiert:

gunicorn myproject.wsgi:application --bind "0.0.0.0:${PORT:-3000}"

Für Flask, wo app.py app exportiert:

gunicorn app:app --bind "0.0.0.0:${PORT:-3000}"

Für FastAPI, wo main.py app exportiert:

uvicorn main:app --host 0.0.0.0 --port "${PORT:-3000}"

Diese Befehle erwarten eine Shell, die die Port-Variable expandiert. Ein JSON-Array Docker CMD expandiert sie nicht automatisch. Nutze entweder die dokumentierte Variablenunterstützung der Laufzeit, einen Shell-Wrapper oder ein kleines Programm, das die Umgebung liest.

Setze Worker-Anzahlen basierend auf Messungen und verfügbarem Speicher. Mehr Prozesse können mehr Speicher und Datenbankverbindungen nutzen; Worker hinzuzufügen ist kein Ersatz für das Prüfen einer langsamen Query oder blockierenden Task.

Ein minimaler FastAPI-Container

Für eine Anwendung mit main.py und einem gelockten requirements.txt mit FastAPI und Uvicorn startet dieses Dockerfile einen Server-Prozess:

FROM python:3.12-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
RUN useradd --create-home appuser
USER appuser
EXPOSE 3000
CMD ["sh", "-c", "exec uvicorn main:app --host 0.0.0.0 --port ${PORT:-3000}"]

Wähle eine Python-Version, die mit deinem Projekt kompatibel ist. Lege .env, lokale Virtual Environments, Caches und Git-Daten in .dockerignore. Dieses Beispiel installiert keine zusätzlichen OS-Pakete; füge nur jene hinzu, die deine Abhängigkeiten brauchen.

Auf Lizard kannst du ein Dockerfile mitbringen oder den Source-Build-Pfad nutzen. Der Deployment-Leitfaden erklärt die Optionen. Deine App sollte einen kleinen Health-Endpoint exponieren, und du solltest auch einen Endpoint testen, der die echten Abhängigkeiten beansprucht.

Ein auf Lizard geprüftes FastAPI-Deployment

Unser öffentliches FastAPI-Beispiel hat einen datierten Deployment-Datensatz vom 9. September 2026. Der Test nutzte Commit df522c1, gebaut aus GitHub in eu-west-lim-a, mit Port 8000 und einem Uvicorn-Startbefehl im Procfile. Es nutzte Python 3.13 mit FastAPI 0.141.1 und Uvicorn 0.52.4. Kein manueller Build- oder Start-Override war gesetzt.

Der veröffentlichte Prüfdatensatz meldet sechs bestandene Prüfungen über die öffentliche HTTPS-URL:

RequestBeobachtetes Ergebnis
GET /healthHTTP 200 mit {"status":"ok"}
GET /docsHTTP 200; API-Interface nutzt /openapi.json
GET /openapi.jsonHTTP 200; Schema enthält Health- und Echo-Routes
POST /echo mit einem JSON-ObjektHTTP 200 mit demselben Objekt
POST /echo mit einem JSON-ArrayHTTP 422 für den ungültigen Body-Typ
GET /no-such-routeHTTP 404

Öffne den live Health-Endpoint, probiere das API-Interface aus oder folge dem FastAPI-Deployment-Leitfaden.

Diese Ergebnisse decken Deployment und HTTP-Verhalten für eine kleine App ohne Datenbank ab. Sie messen keine Uptime, Lastkapazität oder End-to-End-Deployment-Zeit. Derselbe Datensatz gibt eine CLI-Ablesung um 11:48 UTC von ca. 0,034 GB Speicher und ca. $0,00051/Stunde an Ressourcenkosten. Das ist eine Momentaufnahme, keine Monatsrechnung; die genannte Ablesung nutzte die zum Zeitpunkt geltenden Raten. Aktuelles Lizard-Hosting nutzt pay as you go ohne monatliches Abo; Speicher, Traffic und Zahlungsgebühren können zum Gesamtbetrag hinzukommen. Der obige Dockerfile ist ein separates Beispiel und reproduziert nicht die exakte Konfiguration jenes Bereitstellungen.

Django, Postgres und Celery brauchen separate Prüfungen

Verbinde Managed Postgres über die Variable, die deine Django-Settings lesen. Führe Migrationen als kontrollierten Release-Schritt aus, nicht unabhängig in jedem Web-Worker. Konfiguriere den Umgang mit statischen Dateien und gib hochgeladenen Dateien dauerhaften Speicher.

Führe Celery als separaten Service mit demselben relevanten Anwendungscode und eigenem Startbefehl aus. Konfiguriere den Broker explizit, beispielsweise mit Managed Redis, falls deine App Redis nutzt. Prüfe Retries, Duplicate-Task-Handling und Shutdown, bevor du Produktionsarbeit annimmst.

Für einen selbst betriebenen Server nutze den Django-VPS-Walkthrough. Für einen verwalteten Worker sieh die Worker-Deployment-Referenz.

Die gesamte Python-Anwendung abschätzen

Web-Prozesse, Worker, Datenbank, gespeicherte Dateien, Backups, Transfer und der Plan, den dein Team braucht, einbeziehen. Railway misst Verbrauch und rechnet seinen bezahlten Plan auf die Nutzung an. Render veröffentlicht Instanzpläne. PythonAnywhere listet aktuell Developer bei $10/Monat; prüfe die inkludierten Features gegen deine App. Quellen: Railway, Render, PythonAnywhere.

Lizard hat kein monatliches Abo und keine pro-Service-Plan-Gebühr. Für eine kleine App mit durchschnittlich 0,01 vCPU und 0,1 GB Speicher über 720 Stunden, mit 10 GB Egress, betragen die Ressourcenkosten ca. $1,53 vor Zahlungsgebühren und Steuer. Füge die Datenbank, Worker und den Speicher hinzu, den deine Python-App braucht. Sieh das ausgearbeitete Beispiel und aktuelle Raten. Gekauftes Guthaben laufen nicht ab, sodass ein ruhiger Monat keinen neuen Plan-Kauf erfordert.

FAQ

Kann ich FastAPI auf denselben Services hosten wie Django? Oft ja, aber FastAPI braucht einen ASGI-Server. Bestätige, dass der Host deinen Startbefehl und alle langlebigen Verbindungen oder Worker unterstützt, die die App nutzt.

Sollte ich runserver in Produktion nutzen? Nein. Nutze einen produktiven WSGI- oder ASGI-Server und prüfe den Deployment-Leitfaden des Frameworks.

Warum sagt der Host, meine App sei ungesund? Prüfe die Build-Logs, den Prozess-Exit-Status, den Importpfad, das gebundene Interface und den erwarteten Port. Dann prüfe fehlende Variablen und Dependency-Verbindungen.

Brauche ich ein Dockerfile? Nicht auf jedem Host. Ein Source-Builder kann das Image erstellen, aber du brauchst trotzdem korrekte Abhängigkeiten und einen produktiven Startbefehl.

Was ist der beste Host für einen Python-Worker? Einer, der den Lebenszyklus und die Abhängigkeiten des Workers unterstützt. Teste Queue-Konsum, Retries und Restart-Verhalten; ein reines HTTP-Deployment reicht nicht.

Mit AI entwickeln. Mit Lizard ausliefern.

Du brauchst kein Plattform-Team, um live zu gehen. Deine ganze Cloud ist nur einen CLI-Befehl entfernt.

Kostenlos testen
Workspaces
Dienste
Add-ons
Bereitstellungen

Wir verwenden Cookies für wesentliche Website-Funktionen und Analysen. Siehe unsere Cookie-Richtlinie.