<< précédentsuivant >>

Chapitre 2 : Prise en main

Installer Django est un processus en plusieurs étapes, par le fait des parties mobiles dans les environnements modernes de développement web. Dans ce chapitre nous parcourrons la manière d’installer le framework et ses quelques dépendances.

Puisque Django est “juste” du code Python, il tourne partout où Python fonctionne - y compris sur certains téléphones cellulaires! Mais ce chapitre ne couvrira que les scénarios habituels des installations de Django. Nous supposons que vous l’installez soit sur une station de travail au bureau ou un laptop, soit sur un serveur.

Plus tard au chapitre 12, nous couvrirons la manière de déployer Django sur un site de production.

Installer Python

Django est écrit à 100% en pur code Python, aussi la première étape d’installation du framework est de vous assurer que vous avez Python d’installé.

Versions de Python

Le cœur du framework Django travaille avec toute version de Python de la 2.3 à la 2.6 inclusivement. Le support optionnel GIS (Geographical Information System) nécessite Python 2.4 à 2.6

Si vous n’êtes pas certain de la version de Python à installer et que vous êtes entièrement libre de cette décision, prenez la dernière de la série 2.x, soit la 2.6. Quoique Django travaille aussi bien avec toutes les versions de la 2.3 à la 2.6, les dernières version de Python ont des améliorations de performance et des fonctionnalités de langage supplémentaires que vous aimeriez peut-être utiliser dans vos applications. De plus, certains add-ons tiers que vous souhaiteriez peut-être utiliser exigent une version plus récente que la 2.3. Ainsi choisir une version récente conserve vos possibilités.

Note

Au moment d’écrire ceci, Python 3.0 a été libéré, mais Django ne le supporte pas encore. Python 3.0 a introduit un nombre substantiel de changements irréversibles au langage lui-même et, bien entendu, nous pensons que la plupart des librairies importantes, y compris Django, vont prendre quelques années à apparaître. Si vous êtes nouveau en Python et que vous hésitez à apprendre Python 2.x ou Python 3.x, notre conseil est de rester à Python 2.x .

Installation

Si vous êtes sous Linux ou Mac OS X, vous avez déjà probablement Python d’installé. Tapez “python” à l’invite de votre ligne de commande (ou dans le Terminal sous OS X). Si vous voyez apparaître quelque chose comme ceci, alors Python est installé :

Python 2.5.1 (r251:54863, Mar  7 2008, 04:10:12)
[GCC 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>

En revanche, si vous obtenez une erreur du type commande introuvable, vous aurez à télécharger puis à installer Python. Pour commencer, visiter le site http://www.python.org/download/. L’installation est simple et rapide.

Installer Django

A tout moment, deux versions distinctes de Django vous sont disponibles: la dernière version officielle libérée et la version de développement plus pointue. La version que vous déciderez d’installer dépend de vos priorités. Voulez-vous une version stable et testée de Django, ou voulez-vous une version contenant les dernières particularités - peut-être pour participer au développement de Django - mais au détriment de la stabilité.

Nous recommandons d’en rester à la version officielle mais il est important de savoir que la version de développement existe car vous en trouverez des traces dans la documentation et chez les membres de la communauté.

Installer une version officielle

Les versions officielles libérées ont un n° de version, comme par exemple 1.0.3 ou 1.1, et la dernière est toujours disponible sur http://www.djangoproject.com/download/.

Si vous utilisez une distribution Linux qui inclut un package de Django, c’est une bonne idée d’utiliser la version du distributeur. De cette manière vous recevrez les mises à jour de sécurité avec le reste de vos package système.

Si vous n’avez pas accès à une version prépackagée vous pouvez télécharger et installer le framework à la main. Pour ce faire, téléchargez d’abord le “tarball” dont le nom approchera de Django-1.0.2-final.tar.gz . (Le répertoire local où vous téléchargez ce fichier importe peu; le processus d’installation placera les fichiers de Django à la bonne place). Ensuite dézippez le et lancez setup.py install, comme vous faites avec la plpart des librairies.

Django utilise la méthode d’installation standard de Python,``distutils``, qui sous Linux ressemble à ceci :

  1. Télécharger l’archive, dont le nom devrait ressembler à quelque chose comme Django-1.0.2-final.tar.gz.
  2. tar xzvf Django-*.tar.gz.
  3. cd Django-*.
  4. sudo python setup.py install.

Sous Windows, nous vous conseillons d’utiliser 7-Zip pour pouvoir dézipper les fichiers .tar.gz. Vous pouvez télécharger 7-Zip depuis http://www.djangoproject.com/r/7zip/. Une fois le fichier dézippé, ouvrez une console DOS travaillant en mode commandes avec les privilèges d’administrateur et lancez la commande suivante depuis le répertoire dont le nom commence par “Django-“

python setup.py install

Si vous êtes curieux: les fichiers de Django seront installés dans votre répertoire “site-packages” d’installation de Python - un répertoire où Python cherche les librairies tierces. Habituellement c’est en un endroit du genre “/usr/lib/python2.4/site-packages

Note

La console interactive de Python est un programme en ligne de commande qui vous permet d’écrire un programme Python interactivement. Pour la démarrer, il suffit simplement de lancer la commande python depuis la ligne de commande. Tout au long du livre, nous proposons des exemples de code Python dont la syntaxe est identique à ce qu’elle serait si vous deviez la saisir dans la console interactive. Le triple signe « supérieur à » (>>>) symbolise l’invite de la console Python.

Installer Django depuis Subversion

Si vous voulez travailler sur la corde raide, ou si vous voulez contribuer au code de Django lui même, vous devez installer Django depuis son dépôt Subversion.

Subversion est un système de contrôle de versions gratuit et open source, similaire à CVS, utilisé par l’équipe de Django pour gérer les changements apportés à la base du code Django. Vous pouvez utiliser un client Subversion pour récupérer le tout dernier code source de Django, et à n’importe quel moment, mettre à jour votre copie locale du code, appelée aussi checkout local, pour obtenir les derniers changements et améliorations faites par les développeurs de Django.

Le code de développement de Django le plus à jour et le plus qualitatif est couramment appelé trunk. L’équipe de Django gère des sites en production basés sur trunk et s’efforce de le garder stable.

Pour récupérer la dernière version du trunk de Django, suivez ces étapes :

  1. Assurez vous d’avoir un client Subversion installé. Vous pouvez obtenir librement le logiciel depuis l’adresse http://subversion.tigris.org/, et vous pouvez trouver une excellente documentation sur le site http://svnbook.red-bean.com/.
  2. Copiez localement le trunk grâce à la commande svn co http://code.djangoproject.com/svn/django/trunk djtrunk.
  3. Créez un fichier site-packages/django.pth et ajoutez y le répertoire djtrunk, ou mettez à jour votre PYTHONPATH de façon à ce qu’il pointe sur djtrunk.
  4. Ajoutez djtrunk/django/bin à votre PATH système. Ce répertoire inclu des utilitaires d’administration tel que django-admin.py.

Astuce

Si les fichiers .pth sont nouveaux pour vous, vous pouvez en apprendre plus à leur sujet à l’adresse http://www.djangoproject.com/r/python/site-module/.

Après avoir téléchargé depuis Subversion et suivi les étapes précédentes, il n’y a pas besoin de lancer la commande python setup.py install — Vous venez de le faire manuellement !

Puisque le trunk de Django change souvent à cause des corrections et des ajouts de fonctionalités, vous voudrez probablement le mettre à jour de temps à autre — voir toutes les heures si vous êtes vraiment obsédé. Pour mettre à jour le code, lancez simplement la commande svn update depuis le répertoire djtrunk. Lorsque vous lancerez cette commande, Subversion contactera http://code.djangoproject.com, vérifiera si le code a changé, et fera la mise à jour de votre copie locale avec tous les changmements réalisés depuis votre dernière mise à jour. C’est assez propre.

Paramétrer la base de données

Le seul prérequis à Django est une installation fonctionnelle de Python. Cependant, ce livre détaillant un autre aspect pratique de Django, qui est le développement d’application web reposant sur des base de données, vous aurez à installer un serveur de base de données, quelqu’il soit, afin de stocker vos données.

Si vous désirez simplement commencer à vous amuser avec Django, allez directement à la section « Commencer un projet » , mais croyez nous, vous voudrez finalement installer une base de données. Tous les exemples de ce livre partent du principe que vous avez une base de données fonctionnelle.

À ce jour, Django supporte trois moteurs de base de données :

Le support de Microsoft SQL Server et d’Oracle est en cours. Le site internet de Django reste la première source d’information au sujet des bases de données supportées.

Étant nous mêmes très friands de PostgreSQL, pour des raisons qui dépassent l’objectif de ce livre, nous le mentionnons en premier lieu. Cependant, tous les moteurs listés ici fonctionneront tout aussi bien avec Django.

SQLite mérite une remarque particulière en tant qu’outil de développement. C’est un moteur de base de données extrêmement simple qui ne nécessite aucun paramétrage ou configuration particulière C’est de loin le plus simple à mettre en place si vous voulez juste découvrir Django, il est même inclus dans la bibliotèque standard de Python 2.5.

Sous Windows, obtenir des pilotes de base de données binaires est parfois un processus contraignant. Pendant que vous débutez avec Django, nous vous recommandons d’utiliser Python 2.5 et son support natif de SQLite. Compiler des pilotes est déprimant.

Utiliser Django avec PostgreSQL

Si vous utilisez PostgeSQL, vous aurez besoin du paquet psycopg disponible sur http://www.djangoproject.com/r/python-pgsql/. Prenez note de la version utilisée, 1 ou 2; vous aurez besoin de cette information plus tard.

Si vous utilisez PostgreSQL sous Windows, vous pouvez trouver des binaires précompilés de psycopg à l’adresse http://www.djangoproject.com/r/python-pgsql/windows/.

Utiliser Django avec SQLite 3

Si vous utilisez une version de Python supérieure à la 2.5, vous avez déjà SQLite. Si vous travaillez avec Python 2.4 et précédents, vous aurez besoin de la version 3 — et non pas de la version 2 — disponible à l’adresse http://www.djangoproject.com/r/sqlite/ et du paquet pysqlite sur http://www.djangoproject.com/r/python-sqlite/. Assurez vous d’avoir pysqlite en version 2.0.3 ou supérieure.

Sous Windows, vous n’êtes pas tenu d’installer les binaires SQLite séparés, puisqu’ils sont statiquement liés aux binaires de pysqlite.

Utiliser Django avec MySQL

Django nécessite MySQL 4.0 ou supérieur; les versions 3.x ne supportent pas les sous-requêtes imbriquées et certaines déclarations assez standard de SQL. Vous aurez aussi besoin du paquet MySQLdb, disponible sur http://www.djangoproject.com/r/python-mysql/.

Utiliser Django sans base de données

Comme précisé avant, Django n’a en fait pas besoin de base de données. Si vous voulez l’utiliser uniquement pour servir des pages dynamiques qui n’intérrogent pas une base de données, c’est bien aussi.

Ceci étant dit, gardez à l’esprit que certain des outils additionnels à Django nécessitent une base de données. Donc si vous choisissez de ne pas utiliser de bases de données, vous ne pourrez profiter de ces fonctionnalités. (nous mettons en lumières ces fonctionnalités tout au long de ce livre).

Commencer un projet

Un projet est une collection de paramétrages relatifs à une instance de Django, incluant la configuration d’une base de données, des options spécifiques à Django, et aux applications.

Si c’est la première fois que vous utilisez Django, vous devrez faire attention à certain paramétrages initiaux. Créez un nouveau répertoire de travail, comme par exemple /home/utilisateur/djcode, et faites vos changements dans ce répertoire.

Note

django-admin.py doit déjà être dans votre chemin d’accès système si vous avez installé Django grâce à son utilitaire setup.py. Si vous avez récupéré les sources avec Subversion, vous le trouverez dans djtrunk/django/bin. Puisque vous utiliserez django-admin.py souvent, ajoutez le à votre chemin d’accès. Sous Unix, vous pouvez faire ceci grâce à un lien symbolique dans /usr/local/bin, en utilisant une commande tel que sudo ln -s /chemin/vers/django/bin/django-admin.py /usr/local/bin/django-admin.py. Sous Windows, vous aurez besoin de mettre à jour votre variable d’environnement PATH.

Lancez la commande django-admin.py startproject monsite pour créer un dossier monsite dans votre répertoire actuel.

Regardons ce que startproject a créé :

monsite/
    __init__.py
    manage.py
    settings.py
    urls.py

Ces fichiers se présentent comme ceci :

  • __init__.py : Un fichier indiquant à Python qu’il faut traiter le répertoire comme étant un paquet (c’est à dire un groupe de modules);
  • manage.py : Un utilitaire en ligne de commande qui vous permet d’intéragir avec ce projet Django de différentes manières;
  • settings.py : Paramétrage/configuration pour ce projet Django;
  • urls.py : Les déclarations d’URL pour ce projet Django; une table des matière de votre site propulsé par Django.

Où doivent résider ces répertoires ?

Si vous venez du monde PHP, vous êtes probablement habitués à placer le code à la racine du serveur web (à un endroit tel que /var/www). Avec Django, vous ne faites pas cela. Ce n’est pas une bonne idée de placer du code Python à la racine de votre serveur internet, car en faisant cela vous prenez le risque que des personnes puissent avoir accès à votre code au travers d’internet. Ce n’est pas bon pour la sécurité.

Placez votre code dans un dossier extérieur à la racine du serveur.

Le serveur de développement

Django propose nativement un serveur léger, que vous pouvez utiliser lorsque vous développez votre site. Nous avons ajoutés ce serveur de façon à ce que vous puissiez rapidement, sans avoir à gérer la configuration de votre serveur de production (par exemple, Apache) avant d’être prêt pour la production. Ce serveur de développement inspecte les changements apportés à votre code et les prends en compte automatiquement, vous aidant ainsi lorsque vous apportez de rapides changements à votre projet sans avoir à redémmarrer quoique ce soit.

Déplacez vous dans le dossier monsite si ce n’est déjà fait, et lancez la commande python manage.py runserver. Vous obtiendrez alors quelque chose comme ceci :

Validating models...
0 errors found.

Django version 1.0, using settings 'mysite.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

Bien que le serveur de développement soit extrêmement pratique pour le développement, resistez à la tentation d’utiliser ce serveur pour tout ce qui peut ressembler à un environnement de production. Le serveur de développement peut prendre en charge une seule requête de manière fiable, et n’a fait l’objet d’aucune sorte d’audit de sécurité. Lorsque l’heure du lancement de votre site sera venue, lisez le chapitre 20 pour des informations relatives au déploiement de Django.

Modifier l’hôte ou le port

Par défaut, la commande runserver démarre le serveur de développement sur le port 8000, attendant seulement les connexions locales. Si vous voulez changer le port du serveur, ajoutez le en argument de la ligne de commande :

python manage.py runserver 8080

Vous pouvez aussi changer l’adresse IP qu’écoute le serveur. Ceci est particulièrement utile si vous désirez partager un site de développement avec d’autres développeurs. La commande suivante :

python manage.py runserver 0.0.0.0:8080

fera écouter Django sur n’importe quelle interface réseau, autorisant ainsi d’autres ordinateurs à se connecter au serveur de développement.

Maintenant que le serveur fonctionne, consultez http://127.0.0.1:8000/ à l’aide de votre navigateur internet. Vous verrez alors une page « Welcome to Django » teintée d’un bleu pastel des plus plaisant. Ça fonctionne !

Et ensuite ?

Maintenant que vous avez tout installé et que le serveur de développement tourne, vous allez pouvoir écrire, au chapitre suivant, un peu de code basique qui vous montrera comment servir des pages web en utilisant Django.

<< précédentsuivant >>

Dernière modification: 2009-11-09 15:35:04.091486