Zum Hauptinhalt springen

Python

Die Deploio-Build-Umgebung nutzt das Paketo Python Buildpack.

Beispiel-App

Eine einfache Python Django App zeigen wir in unserem Beispiele-Repository. Du kannst diese mit nctl deployen. Die Beispiel-Anwendung zeigt bei jedem Neuladen der Seite eine zufällig ausgewählte Mitteilung. Über die Django-Admin-Schnittstelle kannst du weitere Mitteilungen hinzufügen. Besuche dazu einfach https://<URL of app>/admin, um auf die Schnittstelle zuzugreifen. Logge dich mit den Login-Daten ein, die du über die untenstehenden Umgebungsvariablen erstellst. Definiere bitte auch einen SECRET_KEY, der zur Sicherung der signierten Daten dient und nicht weitergegeben werden sollte.

nctl create application django-example \
--git-url=https://github.com/ninech/deploio-examples \
--git-sub-path=python/django \
--env=DJANGO_SU_NAME=admin \
--env=DJANGO_SU_EMAIL=admin@example.com \
--env=DJANGO_SU_PASSWORD=<INSERT A PASSWORD HERE> \
--env=SECRET_KEY=<LONG RANDOM STRING>

Build-Umgebungsvariablen

Das Python-Buildpack unterstützt nur wenige Umgebungsvariablen. Du findest diese in der Paketo-Dokumentation.

Besonderheiten bei Django

Procfile

Bei einer Django-Anwendung musst du ein Procfile im Root deines Anwendungs-Quellcodes erstellen, welche den standardmässigen „Web“-Eingangspunkt in eine gültige wsgi Projektkonfigurationsdatei umwandelt, welche von gunicorn bedient wird. Das Procfile in unserer Beispiel-Anwendung sieht etwa so aus:

web: gunicorn deploio.wsgi

ALLOWED_HOSTS konfigurieren

Die Einstellung ALLOWED_HOSTS definiert die erlaubten Hostnamen/Domains, welche die Django-Seite bedienen darf. Um bei deiner Anwendung die Nutzung der standardmässigen Deploio-URLs zu ermöglichen, kannst du folgendes in deiner settings.py Datei eintragen:

ALLOWED_HOSTS = [".deploio.app"]

Bitte beachte, dass du dieser Liste alle deine Domainnamen hinzufügen musst. Wenn deine Anwendung also über django-app.example.com bedient werden soll, sollten deine ALLOWED_HOSTS so aussehen:

ALLOWED_HOSTS = [
"deploio.app",
"django-app.example.com",
]

SECRET_KEY konfigurieren

Der SECRET_KEY-Parameter wird verwendet, um signierte Daten in Django zu sichern. Er sollte sicher verwahrt werden und daher nicht zusammen mit deinem Anwendungscode abgelegt werden. Eine Möglichkeit, ihn zu definieren, bietet das Laden aus der Umgebung. Dazu kannst du den folgenden Code in deiner settings.py-Datei einfügen:

# The secret key can be passed via the env variable "SECRET_KEY"
SECRET_KEY = os.environ.get('SECRET_KEY')
if SECRET_KEY == None:
raise ValueError("SECRET_KEY environment variable must be set")

Danach musst du die Umgebungsvariable SECRET_KEY mit nctl definieren, wie du im Abschnitt Beispiel-App sehen kannst.