Lors de la création d’une nouvelle instance Python, vous avez actuellement quatre options :
2.7 (inclut le support 3.2)
3.6
3.7
3.8
Si vous avez sélectionné un hébergement Python 2.7, pour basculer entre les versions 2.7 et 3.2 afin d’exécuter votre application, voir « Choix de la version Python » ci-dessous.
Un nom de domaine est mis à disposition à des fins de test lorsque l’instance est créée. Vous pouvez lier un certain nombre de noms de domaine et de sous-domaines. Tous pointeront vers la même base de code d’application.
Les dépendances de votre application doivent pouvoir être installées avec pip, et doivent être spécifiées dans un fichier nommé requirements.txt.
Pour que les dépendances soient automatiquement installées, vous devez déployer le code avec Git.
Lorsque vous développez votre application sur une machine locale, installez les dépendances avec pipinstall. Ensuite, lorsque votre application est prête à entrer en production, exécutez la commande suivante localement pour générer un fichier contenant toutes les dépendances :
$ pip freeze > requirements.txt
Cette commande remplira le fichier requirements.txt avec des modules et dépendances basés sur ceux que vous avez installés dans votre environnement de développement. Vous devez utiliser Git pour livrer et pousser ce fichier vers l’instance pour qu’il soit utilisé. Les dépendances seront installées lorsque vous déployez l’application avec SSH.
Pour plus d’informations sur le déploiement de votre application avec git+SSH, consultez le guide git.
Cette section ne s’applique qu’aux instances Python 2.7 / 3.2.
Il est possible de choisir la version de Python que vous voulez utiliser pour exécuter votre application parmi les versions disponibles que nous offrons. Pour ce faire, vous devrez spécifier la version de Python que vous voulez utiliser dans un fichier gandi.yml à la racine de votre projet, dans le champ python :
gandi.yml
python:version:3.2
L’exemple ci-dessus forcera l’utilisation de Python 3.2. Si le fichier existe mais qu’il n’y a pas de champ python, ou dans le cas où le format yaml n’est pas valide, la version par défaut sera utilisée. Si une valeur invalide est spécifiée, votre application ne démarrera pas et un message d’erreur sera affiché dans les journaux de déploiement de votre application et dans les journaux de démarrage de votre instance.
Note
Ce fichier, comme tous les autres fichiers composant votre projet, doit être suivi par Git et poussé vers votre dépôt distant Hébergement Web avant d’émettre la commande de déploiement.
La sortie d’erreur standard de votre application sera écrite dans les fichiers suivants sur le disque de votre instance :
depuis la console SSH : /srv/data/var/log/www/uwsgi.log
depuis le sFTP : /lamp0/var/log/www/uwsgi.log.
Vous pouvez utiliser ces fichiers pour contrôler le bon démarrage de votre application.
Vous avez également la possibilité de configurer le logger pour qu’il réponde à vos besoins. Ajoutez un fichier appelé logging.ini à la racine du projet pour le faire.
Pour activer la prise en charge des caractères spéciaux dans uwsgi, par exemple dans les noms de fichiers, ajoutez les instructions suivantes au fichier uwsgi.py :
Comment utiliser Python sur un Hébergement Web Gandi¶
L’instance Hébergement Web Python vous permet de publier des applications web écrites en Python facilement et à moindre coût.
Prérequis¶
Support des versions¶
Lors de la création d’une nouvelle instance Python, vous avez actuellement quatre options :
Si vous avez sélectionné un hébergement Python 2.7, pour basculer entre les versions 2.7 et 3.2 afin d’exécuter votre application, voir « Choix de la version Python » ci-dessous.
Utilisation de base¶
Votre application Python doit contenir au moins un fichier nommé wsgi.py, qui doit lui-même contenir l’objet de l’application, conformément à la convention PEP spécifié ici : https://www.python.org/dev/peps/pep-0333/#the-application-framework-side
Domaines¶
Un nom de domaine est mis à disposition à des fins de test lorsque l’instance est créée. Vous pouvez lier un certain nombre de noms de domaine et de sous-domaines. Tous pointeront vers la même base de code d’application.
Exemple¶
Directory layout
wsgi.py:
Dépendances des applications¶
Les dépendances de votre application doivent pouvoir être installées avec
pip
, et doivent être spécifiées dans un fichier nommérequirements.txt
.Pour que les dépendances soient automatiquement installées, vous devez déployer le code avec Git.
Lorsque vous développez votre application sur une machine locale, installez les dépendances avec
pip install
. Ensuite, lorsque votre application est prête à entrer en production, exécutez la commande suivante localement pour générer un fichier contenant toutes les dépendances :Cette commande remplira le fichier
requirements.txt
avec des modules et dépendances basés sur ceux que vous avez installés dans votre environnement de développement. Vous devez utiliser Git pour livrer et pousser ce fichier vers l’instance pour qu’il soit utilisé. Les dépendances seront installées lorsque vous déployez l’application avec SSH.Pour plus d’informations sur le déploiement de votre application avec git+SSH, consultez le guide git.
Sélection de la version Python¶
Note
Cette section ne s’applique qu’aux instances Python 2.7 / 3.2.
Il est possible de choisir la version de Python que vous voulez utiliser pour exécuter votre application parmi les versions disponibles que nous offrons. Pour ce faire, vous devrez spécifier la version de Python que vous voulez utiliser dans un fichier
gandi.yml
à la racine de votre projet, dans le champpython
:gandi.yml
L’exemple ci-dessus forcera l’utilisation de Python 3.2. Si le fichier existe mais qu’il n’y a pas de champ
python
, ou dans le cas où le format yaml n’est pas valide, la version par défaut sera utilisée. Si une valeur invalide est spécifiée, votre application ne démarrera pas et un message d’erreur sera affiché dans les journaux de déploiement de votre application et dans les journaux de démarrage de votre instance.Note
Ce fichier, comme tous les autres fichiers composant votre projet, doit être suivi par Git et poussé vers votre dépôt distant Hébergement Web avant d’émettre la commande de déploiement.
Fichiers statiques¶
Placez tout votre contenu statique dans des répertoires nommés
/static/
ou/media/
, afin que le serveur HTTPD Apache puisse les récupérer.Journaux¶
La sortie d’erreur standard de votre application sera écrite dans les fichiers suivants sur le disque de votre instance :
Vous pouvez utiliser ces fichiers pour contrôler le bon démarrage de votre application.
Vous avez également la possibilité de configurer le logger pour qu’il réponde à vos besoins. Ajoutez un fichier appelé
logging.ini
à la racine du projet pour le faire.Pour plus d’informations, voir :
Exemples¶
Exemple d’application Flask¶
https://github.com/crito/minitwit
Disposition des répertoires
wsgi.py:
requirements.txt:
flask
Exemple Django¶
Disposition des répertoires
wsgi.py:
requirements.txt:
Encodage des caractères¶
Pour activer la prise en charge des caractères spéciaux dans uwsgi, par exemple dans les noms de fichiers, ajoutez les instructions suivantes au fichier
uwsgi.py
: