Python-Anwendungen verwalten und deployen
Eine Python-Anwendung starten
- mStudio UI
- CLI
- API
Um eine Python-Anwendung über die mStudio-Oberfläche zu starten, folge diesen Schritten:
- Navigiere zum Projekt, in dem du die Anwendung erstellen möchtest.
- Wähle im Seitenmenü den Punkt "Apps" aus.
- Klicke auf den Button "App erstellen" und wähle "Benutzerdefinierte Python-App" aus.
- Wähle im Installations-Assistenten den Eintrittspunkt-Befehl aus, der verwendet werden soll, um deine Anwendung zu starten, und schließe den Assistenten ab.
Nach Abschluss der Installation, achte auf das Installationsverzeichnis, das in der UI angezeigt wird.
Um eine Python-Anwendung über die CLI zu starten, führe den folgenden Befehl aus:
$ mw app create python --wait --entrypoint "python server.py"
Das --wait
-Flag sorgt dafür, dass die CLI wartet, bis die Installation abgeschlossen ist. Das --entrypoint
-Flag enthält den Befehl, der verwendet werden soll, um deine Anwendung tatsächlich zu starten. Falls er weggelassen wird, wird der Standardwert yarn start
verwendet.
Nachdem die Installation abgeschlossen wurde, verwende das mw app get
-Kommando, um das Installationsverzeichnis zu ermitteln.
Um zu erfahren, wie du eine Python-Anwendung über die API bereitstellen kannst, lies den Artikel "Eine Node.js oder Python-Anwendung starten".
Deine Anwendung bereitstellen
Nachdem du deine Python-Anwendung erstellt hast, kannst du deinen Code deployen, indem du ihn in das dafür vorgesehene Installationsverzeichnis hochlädst. Um deinen Code bereitzustellen, kannst du die Methode wählen, die zu bevorzugst, wie beispielsweise ein lokal ausgeführter Git-Klon, rsync oder SFTP.
Für mehr Informationen, wie du deinen Code am besten bereitstellen kannst, wirf einen Blick auf unsere Sammlung von Deployment-Anleitungen.
Deine Anwendung über HTTP zugänglich machen
Wirf einen Blick auf unseren Leitfaden zum Betrieb von Webservern, um zu erfahren, wie du deine Python-Anwendung über HTTP zugänglich machen kannst.
Das Verwalten Deines Prozesslebenszyklus
Wirf einen Blick auf unseren Leitfaden zum Betrieb von Webservern, um zu erfahren, wie du den Prozesslebenszyklus deiner Python-Anwendung verwalten kannst.
Beispielanwendungen
Flask mit Gunicorn
Dieser Abschnitt zeigt dir, wie du eine einfache Python-Anwendung mit Flask und Gunicorn bereitstellen kannst. Dafür musst du eine benutzerdefinierte Python-Installation mit dem Einstiegspunkt gunicorn -w4 server:app
erstellen:
$ mw app create python --wait --entrypoint "gunicorn -w4 server:app"
Bezüglich des Einstiegspunkts:
- Der
-w
-Parameter steuert die Anzahl der Worker-Prozesse. Die Gunicorn-Dokumentation empfiehlt, 2 × [Anzahl der CPU-Kerne] + 1 als Ausgangspunkt zu verwenden. - Der Teil
server:app
bezieht sich auf dasapp
-Objekt in der Dateiserver.py
. Diese werden im nächsten Schritt erstellt.
Installiere zunächst die erforderlichen Abhängigkeiten über pip:
$ pip install gunicorn flask
Erstelle dann eine server.py
in deinem Anwendungsverzeichnis:
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "<p>Hello World</p>"
Gunicorn respektiert automatisch die PORT
-Umgebungsvariable, sodass du den Port nicht gesondert in deinem Anwendungscode berücksichtigen musst.
Um sicherzustellen, dass deine Anwendung läuft, verwende die Befehle mittnitectl job status
und mittnitectl job start
:
$ mittnitectl job status
$ mittnitectl job start
Django mit Gunicorn
Dieser Abschnitt zeigt dir, wie du eine einfache Python-Anwendung mit Django und Gunicorn bereitstellen kannst. Dafür musst du eine benutzerdefinierte Python-Installation mit dem Einstiegspunkt gunicorn -w 4 <project-name>.wsgi:application
erstellen. In diesem Befehl steuert der -w
-Parameter die Anzahl der Worker-Prozesse und <project-name>
ist der Name deines Django-Projekts:
$ mw app create python --wait --entrypoint "gunicorn -w 4 <project-name>.wsgi:application"
Bezüglich des Einstiegspunkts:
- Der
-w
-Parameter steuert die Anzahl der Worker-Prozesse. Die Gunicorn-Dokumentation empfiehlt, 2 × [Anzahl der CPU-Kerne] + 1 als Ausgangspunkt zu verwenden. <project-name>
bezieht sich auf den Namen deines Django-Projekts. Wenn du ein neues Django-Projekt erstellst, ist dies das erste Argument, das du an den Befehldjango-admin startproject
übergibst.
Folge dem offiziellen Django-Tutorial um zu lernen, wie du ein Django-Projekt initialisierst. Zusammengefasst, verwende folgenden Befehl, um ein neues Projekt in deinem Anwendungsverzeichnis zu initialisieren:
$ django-admin startproject <project-name> .
Gunicorn respektiert automatisch die PORT
-Umgebungsvariable, sodass du den Port nicht gesondert in deinem Anwendungscode berücksichtigen musst.
Um sicherzustellen, dass deine Anwendung läuft, verwende die Befehle mittnitectl job status
und mittnitectl job start
:
$ mittnitectl job status
$ mittnitectl job start
Django Entwicklungsserver
Wenn du mit Django arbeitest, kannst du auch den integrierten Entwicklungsserver verwenden. Der Entwicklungsserver ist nicht für den produktiven Einsatz geeignet, eignet sich jedoch für Entwicklungs- und Testzwecke, da er automatisch bei Code-Änderungen neu lädt.
Um den Entwicklungsserver zu verwenden, musst du ein Wrapper-Skript erstellen, um die PORT
-Umgebungsvariable korrekt auszulesen. Erstelle dafür deine Python-Anwendung mit dem Einstiegspunkt bash start.sh
:
$ mw app create python --wait --entrypoint "bash start.sh"
Initialisiere dann deine Django-Anwendung wie im vorherigen Abschnitt beschrieben und erstelle eine start.sh
-Datei in deinem Anwendungsverzeichnis:
#!/bin/bash
exec python manage.py runserver ${PORT:-8000}