site alwaysdata

forum

Technique > Web > Python > Django

Articles
Comment utiliser Django ?

Python, comme les autres langages proposés par alwaysdata, tourne en FastCGI. Pour utiliser Django sur nos serveurs, il suffit simplement de suivre la section Running Django on a shared-hosting provider with Apache de la documentation officielle de Django.

Concrètement, voici une marche à suivre (parmi d'autres) :

Première étape

Créez un répertoire public à la racine de votre projet. Dedans, créez un fichier django.fcgi contenant :

#!/usr/bin/python
import os, sys

sys.path.insert(0, "/home/myaccount/www/")
os.chdir('..')
os.environ['DJANGO_SETTINGS_MODULE'] = "myproject.settings"

from django.core.servers.fastcgi import runfastcgi
runfastcgi(method="threaded", daemonize="false")

Remplacez le chemin du sys.path.insert par le chemin complet du répertoire dans lequel se trouve votre projet. Enfin, remplacez myproject par le nom de votre projet.

Donnez les droits d'exécution à ce fichier (en SSH : chmod +x django.fcgi)

Deuxième étape

Toujours dans le répertoire public, créez un fichier .htaccess contenant :

AddHandler fcgid-script .fcgi
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ django.fcgi/$1 [QSA,L]

Troisième étape

Cette étape n'est nécessaire que si vous utilisez l'interface d'administration de Django.

Toujours dans public, créez un lien symbolique media qui pointe vers les fichiers media de l'admin Django :

ln -s /usr/share/python-support/python-django/django/contrib/admin/media/ media

Quatrième étape

Pour garantir la sécurité de vos fichiers et permettre à l'administration Django de fonctionner, cette étape est nécessaire.

À partir de votre interface d'administration alwaysdata, faites pointer votre sous-domaine vers le répertoire public de votre projet.

Ainsi, si votre projet est dans /home/myaccount/www/myproject et que vous voulez que http://myaccount.alwaysdata.net arrive directement sur votre application, vous devrez modifier le répertoire de destination du sous-domaine myaccount.alwaysdata.net vers /myproject/public (au lieu de / par défaut).

Au final

Votre arborescence devrait ressembler à quelque chose comme cela :

myproject/
    __init__.py
    manage.py
    public/
        django.fcgi
        .htaccess
        media/
   settings.py
   urls.py

[ top ][ signaler que l'article doit être mis à jour ]