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. Sie können diese mit nctl deployen. Die Beispiel-Anwendung zeigt bei jedem Neuladen der Seite eine zufällig ausgewählte Mitteilung. Über die Django-Admin-Schnittstelle können Sie weitere Mitteilungen hinzufügen. Besuchen Sie dazu einfach https://<URL of app>/admin, um auf die Schnittstelle zuzugreifen. Loggen Sie sich mit den Login-Daten ein, die Sie über die untenstehenden Umgebungsvariablen erstellen. Definieren Sie 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. Sie finden diese in der Paketo-Dokumentation.

Besonderheiten bei Django

Procfile

Bei einer Django-Anwendung müssen Sie ein Procfile im Root Ihres 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 Ihrer Anwendung die Nutzung der standardmässigen Deploio-URLs zu ermöglichen, können Sie folgendes in Ihrer settings.py Datei eintragen:

ALLOWED_HOSTS = [".deploio.app"]

Bitte beachten Sie, dass Sie dieser Liste alle Ihre Domainnamen hinzufügen müssen. Wenn Ihre Anwendung also über django-app.example.com bedient werden soll, sollten Ihre 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 Ihrem Anwendungscode abgelegt werden. Eine Möglichkeit, ihn zu definieren, bietet das Laden aus der Umgebung. Dazu können Sie den folgenden Code in Ihrer 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 müssen Sie die Umgebungsvariable SECRET_KEY mit nctl definieren, wie Sie im Abschnitt Beispiel-App sehen.