Ce document a pour but de vous préparer à faire fonctionner Django.
Django étant un applicatif Web Python, il a donc besoin de Python.
Il fonctionne avec toute version de Python de 2.6.5 à 2.7. Il offre également une prise en charge expérimentale des versions de Python 3.2.3 à 3.3.
Python peut être obtenu sur http://www.python.org. Si vous utilisez Linux ou Mac OS X, il est probablement déjà installé sur votre système.
Django sur Jython
Si vous utilisez Jython (une implémentation de Python pour machine Java), vous devrez suivre quelques étapes supplémentaires. Voyez Fonctionnement de Django sur Jython pour les détails.
Python on Windows
Sur Windows, il peut être nécessaire d’ajuster la variable d’environnement PATH pour y inclure les chemins vers l’exécutable Python et autres scripts supplémentaires. Par exemple, si vous avez installé Python dans C:\Python27\, les chemins suivants doivent être ajoutés à PATH:
C:\Python27\;C:\Python27\Scripts;
Si vous voulez juste faire quelques expériences avec Django, passez directement à la section suivante ; Django inclut un serveur Web léger utilisable pour les tests, il n’est donc pas utile de configurer Apache tant que vous ne souhaitez pas déployer Django en production.
Si vous souhaitez utiliser Django sur un site en production, utilisez Apache avec mod_wsgi. mod_wsgi peut fonctionner dans deux modes : un mode intégré et un mode démon. Dans le mode intégré, mod_wsgi est comparable à mod_perl, il intègre Python dans Apache et charge le code Python en mémoire au démarrage du serveur. Le code reste en mémoire tout au long du cycle de vie du processus Apache, ce qui apporte des améliorations de performance significatives en comparaison d’autres configurations. En mode démon, mod_wsgi délègue la gestion des requêtes à un processus démon indépendant. Ce processus peut fonctionner sous un nom d’utilisateur différent de celui du serveur Web, ce qui peut améliorer la sécurité ; d’autre part, le processus peut être redémarré sans devoir redémarrer tout le serveur Web Apache, ce qui peut simplifier la mise à jour de code. Consultez la documentation de mod_wsgi pour déterminer le mode qui vous conviendra le mieux. Assurez-vous que Apache est installé et que son module mod_wsgi est activé. Django fonctionne avec toute version d’Apache qui prend en charge mod_wsgi.
Consultez Comment utiliser Django avec mod_wsgi pour plus d’informations sur la façon de configurer mod_wsgi après l’avoir installé.
Si vous n’avez pas la possibilité d’utiliser mod_wsgi, ne désespérez pas : Django prend en charge beaucoup d’autres scénarios de déploiement. L’un d’entre eux est uWSGI ; il fonctionne très bien avec nginx. Un autre est FastCGI, parfait pour utiliser Django avec d’autres serveurs que Apache. De plus, Django respecte la spécification WSGI (PEP 3333) ce qui permet de le faire fonctionner sur divers plates-formes serveurs. Consultez la page Wiki sur les configurations serveurs (en anglais) pour des instructions d’installation spécifiques à chaque plate-forme.
Si vous prévoyez d’utiliser la fonctionnalité base de données de Django, vous devez faire le nécessaire pour qu’une base de données soit fonctionnelle. Django sait gérer plusieurs serveurs de bases de données différents ; officiellement, il prend en charge PostgreSQL, MySQL, Oracle et SQLite.
Si vous développez un projet simple ou quelque chose que vous ne prévoyez pas de déployer dans un environnement de production, SQLite est généralement l’option la plus simple car elle n’exige pas de serveur séparé. Cependant, SQLite comporte beaucoup de différences en comparaison d’autres bases de données et si vous travaillez sur un projet un peu conséquent, il est recommandé de développer avec la même base de données qui sera utilisée en production.
En plus des bases de données prises en charge officiellement, il existe des moteurs externes à Django qui permettent d’utiliser d’autres bases de données avec Django :
Les versions de Django et les fonctionnalités ORM prises en charges par ces moteurs inofficiels varient considérablement. Si vous avez des questions concernant les capacités spécifiques de ces moteurs inofficiels ou des questions de support, vous devrez vous adresser aux canaux d’aide offerts par chacun de ces projets externes.
En plus du moteur de base de données, il est aussi nécessaire de vérifier que les liaisons Python pour la base de données sont installées.
Si vous utilisez PostgreSQL, vous avez besoin du paquet postgresql_psycopg2. Vous pouvez consultez les notes sur PostgreSQL pour des détails techniques plus complets au sujet de cette base de données.
Si vous êtes sur Windows, récupérez la version non officielle compilée pour Windows.
Si vous utilisez MySQL, vous aurez besoin du paquet MySQL-python, version 1.2.1p2 ou plus récente. Il est aussi recommandé de lire les notes spécifiques pour le moteur de base de données MySQL.
Si vous utilisez Oracle, vous aurez besoin d’une copie de cx_Oracle, mais veuillez lire les notes spécifiques pour le moteur de base de données Oracle qui contient d’importantes informations concernant les versions prises en charge d’Oracle et de cx_Oracle.
Si vous utilisez un moteur externe non officiel, consultez la documentation qui l’accompagne pour d’éventuels contraintes supplémentaires.
Si vous pensez utiliser la commande de Django manage.py syncdb pour créer automatiquement les tables de base de données pour vos modèles (après la fin de l’installation de Django et la création d’un projet), vous devez vous assurer que Django possède les permissions de créer et modifier les tables dans la base de données que vous utilisez ; si vous pensez créer manuellement les tables, il suffit alors d’attribuer à Django les permissions SELECT, INSERT, UPDATE et DELETE. Pour certaines bases de données, Django aura besoin des privilèges ALTER TABLE durant l’exécution de syncdb, mais ne générera plus de commandes ALTER TABLE pour une table après sa création par syncdb. Après avoir créé un utilisateur de base de données possédant ces permissions, il s’agira d’indiquer les détails de connexion dans le fichier de réglages de votre projet, voir DATABASES pour les détails.
Si vous utilisez l’infrastructure de test de Django pour tester les requêtes de bases de données, Django aura besoin des permissions nécessaires pour créer une base de données de test.
Si vous mettez à jour votre installation de Django à partir d’une version précédente, il est nécessaire de d’abord désinstaller l’ancienne version de Django avant d’installer la nouvelle.
Si l’ancienne version de Django a été installée avec pip ou easy_install, l’installation de la nouvelle version en utilisant le même outil (pip ou easy_install) provoquera automatiquement la désinstallation de la version précédente, vous n’avez donc rien à faire de particulier.
Si l’ancienne version de Django a été installée avec python setup.py install, sa désinstallation se résume à supprimer le répertoire django du répertoire site-packages de votre installation Python. Pour trouver le répertoire à supprimer, vous pouvez exécuter la commande suivante dans le shell d’un terminal (pas dans un shell Python interactif) :
python -c "import sys; sys.path = sys.path[1:]; import django; print(django.__path__)"
Les instructions d’installation divergent légèrement selon que vous installez un paquet de votre distribution, que vous téléchargez la dernière version officielle ou que vous récupériez la dernière version en développement.
C’est facile, quelle que soit la méthode choisie.
Parcourez les notes spécifiques aux distributions pour vérifier que votre plate-forme/distribution propose des paquets ou installeurs officiels de Django. Les paquets fournis par les distributions permettent généralement de profiter de l’installation automatique des dépendances et de mises à niveau plus faciles.
C’est la façon recommandée d’installer Django.
Installez pip. La manière la plus simple est d’utiliser l’installeur pip autonome. Si votre distribution contient déjà une version installée de pip, il pourrait être nécessaire de la mettre à jour si elle est trop ancienne (dans ce cas, vous le verrez bien car l’installation ne fonctionnera pas).
(facultatif) Jetez un œil à virtualenv et virtualenvwrapper. Ces outils fournissent des environnements Python isolés qui sont bien plus pratiques que d’installer des paquets au niveau de tout le système. Ils permettent aussi d’installer des paquets sans avoir besoin de privilèges administrateurs. C’est à vous de savoir si vous voulez apprendre à les utiliser.
Si vous utilisez Linux, Mac OS X ou toute autre variante de Unix, saisissez la commande sudo pip install Django dans une invite de commande. Si vous utilisez Windows, lancez une invite de commande avec des droits d’administrateur et lancez la commande pip install Django. Cela va installer Django dans le répertoire site-packages de votre installation Python.
Si vous utilisez un virtualenv, vous n’avez pas besoin de sudo ni de privilèges administrateurs ; la commande installera Django dans le répertoire site-packages du virtualenv.
Téléchargez la dernière version à partir de notre page de téléchargement.
Décompressez le fichier téléchargé (par ex. tar xzvf Django-X.Y.tar.gz, où X.Y est le numéro de version de la dernière version). Si vous utilisez Windows, vous pouvez télécharger l’outil en ligne de commande bsdtar pour cette opération ou vous pouvez utiliser un outil graphique du genre 7-zip.
Placez-vous dans le répertoire créé à l’étape 2 (par ex. cd Django-X.Y).
Si vous utilisez Linux, Mac OS X ou toute autre variante de Unix, saisissez la commande sudo python setup.py install dans une invite de commande. Si vous utilisez Windows, lancez une invite de commande avec des droits d’administrateur et lancez la commande python setup.py install. Cela va installer Django dans le répertoire site-packages de votre installation Python.
Removing an old version
Si vous utilisez cette technique d’installation, il est particulièrement important de supprimer d’abord toute installation existante de Django. Sinon, vous pouvez vous retrouver avec une installation défaillante qui contient des fichiers de versions précédentes qui ne doivent plus se trouver dans Django.
Tracking Django development
Si vous décidez d’utiliser la dernière version de développement de Django, il est recommandé de surveiller attentivement l’activité de développement de même que les notes de publication de la version à venir. Cela vous aidera à vous tenir au courant de toute nouvelle fonctionnalité que vous pourriez exploiter ou des modifications que vous devrez effectuer dans votre code lors de la mise à jour de votre copie de Django (pour les versions stables, toute modification nécessaire est documentée dans les notes de publication).
Si vous aimeriez pouvoir mettre à jour occasionnellement votre version de Django avec les dernières corrections et améliorations, suivez ces instructions :
Vérifiez que Git est installé et que vous pouvez lancer ses commandes depuis un terminal (saisissez git help à l’invite de commande pour le tester).
Créez une copie de travail de la branche principale de développement de Django (appelée « trunk » ou « master ») comme ceci :
git clone git://github.com/django/django.git django-trunk
Un répertoire django-trunk sera créé dans le répertoire actuel.
Vérifiez que l’interpréteur Python peut charger le code de Django. La façon la plus pratique de faire cela est d’utiliser pip. Lancez la commande suivante :
sudo pip install -e django-trunk/
(Si vous utilisez un virtualenv, vous pouvez omettre sudo.)
Ceci rendra le code Django importable et mettra aussi à disposition la commande utilitaire django-admin.py. En d’autres mots, vous serez fin prêt !
Si pip n’est pas disponible, consultez les instructions alternatives pour l’installation de la version de développement sans pip.
Avertissement
Ne lancez pas sudo python setup.py install car vous avez déjà effectué les actions équivalentes à l’étape 3.
Lorsque vous souhaitez mettre à jour votre copie du code source de Django, lancez simplement la commande git pull à partir du répertoire django-trunk. Quand vous faites cela, Git télécharge automatiquement toutes les modifications.
Si pip n’est pas disponible, vous pouvez manuellement modifier le chemin de recherche Python à la place.
Suivez d’abord les étapes 1 et 2 ci-dessus pour obtenir un répertoire django-trunk contenant une extraction du dernier code de Django. Ensuite, dans le répertoire site-packages de votre système, ajoutez un fichier .pth contenant le chemin complet vers le répertoire django-trunk. Par exemple, sur un système de type Unix :
echo WORKING-DIR/django-trunk > SITE-PACKAGES-DIR/django.pth
Dans la ligne ci-dessus, modifiez WORKING-DIR/django-trunk pour qu’il corresponde au chemin complet de votre nouveau répertoire django-trunk et modifiez SITE-PACKAGES-DIR pour qu’il corresponde au répertoire site-packages de votre système.
L’emplacement du répertoire site-packages dépend du système d’exploitation et de l’emplacement d’installation de Python. Pour trouver où se situe ce répertoire dans votre système, exécutez ce qui suit :
python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())"
(Notez que cette commande doit être lancée dans une invite de commande de shell, et non pas dans un shell interactif Python.)
Certaines distributions Linux basées sur Debian ont des répertoires site-packages distincts pour les paquets installés par les utilisateurs, comme lorsqu’on installe Django à partir d’une archive téléchargée. La commande mentionnée ci-dessus affiche le répertoire site-packages du système, celui des utilisateurs pouvant être trouvé dans /usr/local/lib/ au lieu de /usr/lib/.
Vous devez ensuite rendre disponible la commande django-admin.py dans le chemin PATH de votre shell.
Sur des systèmes de type Unix, créez un lien symbolique vers le fichier django-trunk/django/bin/django-admin.py dans un des répertoires contenus dans le chemin système, comme /usr/local/bin. Par exemple :
ln -s WORKING-DIR/django-trunk/django/bin/django-admin.py /usr/local/bin/
(Dans la ligne ci-dessus, modifiez WORKING-DIR pour qu’il corresponde au chemin complet vers votre nouveau répertoire django-trunk.)
Cela vous permet de simplement taper django-admin.py à partir de n’importe quel répertoire, plutôt que de devoir qualifier la commande avec son chemin complet vers le fichier.
Sur des systèmes Windows, on peut arriver au même résultat en copiant le fichier django-trunk/django/bin/django-admin.py dans un emplacement se trouvant le chemin système, par exemple C:\Python27\Scripts.
Jan 13, 2016