Django est un framework permettant de développer des applications Web en Python.
Nous vous proposons les dernières versions de Python sur votre Managed Flex Server. Ces versions sont régulièrement mises à jour par nos soins.
Ce manuel décrit comment mettre en service une application Django sur votre Managed Flex Server.
Exigences
Afin de pouvoir exécuter une application Django, vous avez besoin au minimum d’un Managed Flex Server M.
Création d’une application Django
Ce manuel présente la simple création d’une application «Hello World» qui fournit un texte simple aux requêtes HTTP.
Nous vous conseillons de créer un dossier ~/app/ pour vos propres applications et d’y créer un sous-dossier pour chacune d’entre elles. Vous avez ainsi toujours un ordre propre et un aperçu clair. Pour l’application Django, nous créons donc le dossier ~/app/helloworld et basculons dans ce dossier:
mkdir -p ~/app/helloworld
cd ~/app/helloworld
Dans le dossier d’application ~/app/helloworld nouvellement créé, créez maintenant la structure requise pour votre application. Cet exemple présente la mise en place d’un projet Django simple:
python3 -m venv venv
source venv/bin/activate
pip install django gunicorn
django-admin startproject helloworld .
Il est recommandé d’installer vos projets Python dans des «Virtual Environments» individuels et séparés. Dans cet exemple, cela se fait par «python3 -m venv venv && source venv/bin/activate».
Dans cet exemple, un texte simple est fourni aux requêtes HTTP. Pour ce faire, éditez le fichier ~/app/helloworld/helloworld/urls.py comme suit:
from django.contrib import admin
from django.urls import path
from django.http import HttpResponse
urlpatterns = [
path('', lambda r: HttpResponse('Hello World')),
path('admin/', admin.site.urls),
]
La variable ALLOWED_HOSTS doit également être ajustée dans les paramètres Django. Par souci de simplicité, cet exemple autorise l’accès à partir de tous les domaines:
sed -i "" "s/ALLOWED_HOSTS =.*/ALLOWED_HOSTS = ['*']/" ~/app/helloworld/helloworld/settings.py
Intégration
Fonctionnement avec le Custom Service Control
Le Custom Service Control (CSC) peut s’occuper du fonctionnement et de la gestion automatique de votre application, par exemple le démarrage et l’arrêt pendant les travaux de maintenance sur votre serveur.
La configuration de l’appli Django helloworld dans le CSC est très simple. Pour ce faire, créez un nouveau Custom Service pour l’application Django:
hpservices supervisord add helloworld
Un cadre de configuration pour le nouveau service est alors créé dans le fichier ~/.services/supervisord/helloworld/service.conf. Seule la commande doit être ajustée pour l’application Django, vous pouvez sinon reprendre toutes les valeurs suggérées (enlever le point-virgule au début de la ligne).
[program:helloworld]
command=%(ENV_HOME)s/app/helloworld/venv/bin/gunicorn helloworld.wsgi -b 127.0.0.1:8080 ; the program (can take args)
directory=%(ENV_HOME)s/app/helloworld/ ; directory to cwd to before exec (default no cwd)
autostart=true ; start application at supervisord start (default: true)
stopwaitsecs=10 ; max num secs to wait before SIGKILL (default 10)
stdout_logfile=%(ENV_HOME)s/.services/supervisord/helloworld/log/default.log
stdout_logfile_maxbytes=1MB ; filesize at which to rotate logfiles (default ist 50MB)
stdout_logfile_backups=10 ; number of stdout logfile backups (0 means none, default 10)
stderr_logfile=%(ENV_HOME)s/.services/supervisord/helloworld/log/default.err
stderr_logfile_maxbytes=1MB ; filesize at which to rotate logfiles (default is 50MB)
stderr_logfile_backups=10 ; number of stderr logfile backups (0 means none, default 10)
supervisorctl update vous permet d’activer la nouvelle configuration pour votre application Django:
supervisorctl update
helloworld: added process group
Attention: En cas d'erreur, "hpservices supervisord start" doit d'abord être exécuté une fois.
Pour de plus amples détails sur l’utilisation et les possibilités qui vous sont offertes par le CSC, consultez le manuel du Custom Service Control.
Configuration du serveur Web
Si vous voulez maintenant rendre votre application accessible via HTTP(s), vous devez configurer votre site Web dans le Control Panel Hostpoint afin que le serveur Web transfère les requêtes à votre application comme proxy.
Dans votre Control Panel Hostpoint, créez un site Web de type «Proxy Nginx sur application propre»:
- Adresse et port du serveur
- La fonction proxy s’attend à ce que votre application écoute l’adresse loopback IPv4 127.0.0.1, et vous devez donc uniquement indiquer le port: 8080.
Pour envoyer une demande d'assistance au support, merci d'utiliser ce formulaire-ci.