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.