Zum Hauptinhalt springen

Python-Anwendungen verwalten und deployen

Eine Python-Anwendung starten

Um eine Python-Anwendung über die mStudio-Oberfläche zu starten, folge diesen Schritten:

  1. Navigiere zum Projekt, in dem du die Anwendung erstellen möchtest.
  2. Wähle im Seitenmenü den Punkt "Apps" aus.
  3. Klicke auf den Button "App erstellen" und wähle "Benutzerdefinierte Python-App" aus.
  4. 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.

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:

Local shell session
$ 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 das app-Objekt in der Datei server.py. Diese werden im nächsten Schritt erstellt.

Installiere zunächst die erforderlichen Abhängigkeiten über pip:

SSH shell session
$ pip install gunicorn flask

Erstelle dann eine server.py in deinem Anwendungsverzeichnis:

server.py
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:

SSH shell session
$ 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:

Local shell session
$ 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 Befehl django-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:

SSH shell session
$ 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:

SSH shell session
$ 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:

Local shell session
$ 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:

start.sh
#!/bin/bash

exec python manage.py runserver ${PORT:-8000}