HelloWorld avec Django

Allez, je commence donc ici une mini série sur quelques Frameworks Web du marché, tous passés à la moulinette de l’application la plus simple possible, la très célèbre “Hello World !”.

Je fais ça car la plupart du temps si les documentations de ces projets sont bien faites (la plupart du temps), elles sont souvent aussi très complètes et elles t’embarquent directement dans la construction d’une application avec base de données et tout et tout...

Bien sur c’est la finalité de ces Frameworks Web, et le meilleur moyen d’en faire le tour, mais des fois tu veux juste faire une application vraiment de base, voir si ça marche, la poser sur ton serveur et re-vérifier que ça marche toujours. Et là, le “HelloWorld” s’impose, parce qu’une fois que tu sais que c’est bon, là tu peux te lancer dans le gros tuto à sa maman...

Donc on va faire du simple et du rapide, mais dans les règles de l’art quand même !

On commence donc avec Django, “le Framework pour les perfectionnistes avec des dealines” .

1 - Comme Django c’est du Python, on va d’abord vérifier que l’on a Python et quelle version. Dans un terminal tapez simplement “python” vous devriez voir l’invite de commande du langage et sa version comme ceci :

Python 2.6.1 (r261:67515, Jun 24 2010, 21:47:49) 
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

Tapez “exit()” pour sortir de là.

A partir du moment ou votre version est supérieure à la 2.5 c’est bon, mais vous ne devez pas avoir la 3.0 pour Django, ça marche pas. Si vous n’avez aucun retour dans la console c’est que vous devez installer Python !

2 - Une fois Python OK, téléchargez la dernière version officielle de Django, décompressez l’archive, en ligne de commande placez vous DANS le répertoire ainsi créé et lancez la commande suivante pour démarrer l’installation :

Sous Unix (Mac OS X aussi évidement) :

sudo python setup.py install (là il faudra sûrement votre mot de passe)

Sous Win (avec les droits Admin)

python setup.py install ou setup.py install

3 - Vérifier que Django est installé correctement en lançant de nouveau la console Python, puis dans l’interpréteur tapez :

>>> import django
>>> print django.get_version()
1.3.1

Ça doit donc vous donnez le numéro de la version que vous avez installé, ici la 1.3.1. Jusque là donc tout va bien, Python et Django sont là et fonctionnent.

4 - Ensuite Django va avoir besoin de créer deux dossiers, un pour le site ou le “projet” dans lequel il stocke sa configuration et un autre pour une application, ou module web. Demandez pas pourquoi deux c’est comme ça, et je trouve ça pas terrible non plus mais bref. Évitez d’ailleurs de créer ça dans votre serveur local, il n’y a pas besoin. Moi j’ai mis le dossier principal dans “Mes Documents”, mettez le ou vous vous voulez mais évitez les espaces dans le chemin.

Bref, avec la console mettez vous dans le répertoire ou vous voulez stocker vos projets Django, et créez le dossier (moi je l’ai appelé “Django” tout simplement) dans lequel vous allez mettre vos applications en faisant :

django-admin.py startproject Django

5 - Placez vous ensuite dans ce dossier :

cd Django

Vérifiez que ça marche en lançant le serveur de développement grâce à la commande :

python manage.py runserver

Cela doit vous donner un truc du genre :

Validating models...
0 errors found
Django version 1.3.1, using settings 'Django.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

Ouvrez votre navigateur à l’Url : “http://localhost:8000”, vous devez voir :

welcome to django

Puis placez vous dans ce répertoire :

cd Django

Puis créez votre application, ou module “HelloWorld” en faisant :

python manage.py startapp helloworld

Dans votre dossier “Django” éditez le fichier “settings.py” et ajoutez votre application dans les “INSTALLED_APPS” en éditant cette partie pour qu’elle ressemble à ça :

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # Uncomment the next line to enable the admin:
    # 'django.contrib.admin',
    # Uncomment the next line to enable admin documentation:
    # 'django.contrib.admindocs',
	'helloworld',
)

Toujours dans le fichier “settings.py” on va rajouter un répertoire pour ranger nos templates HTML, moi j’ai mis le mien dans le dossier “Django” pour des raisons pratiques mais vous pouvez mettre le votre ou bon vous semble, ensuite rajoutez le à la directive “TEMPLATE_DIRS” comme ceci :

TEMPLATE_DIRS = (
    # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
    # Always use forward slashes, even on Windows.
    # Don't forget to use absolute paths, not relative paths.
	'/chemin/utilisateur/Documents/Django/templates',
)

Éditez maintenant le fichier “Django/urls.py”, c’est le fichier qui permet de gérer les Urls entre les contrôleurs et les vues, le tout en un seul endroit et avec tout plein de trucs sympa comme des expressions régulières et tout et tout. Modifiez le pour ajouter :

	# Hello World
	(r'^helloworld/$', 'helloworld.views.index'),

à “urlpatterns”.

Ouvrez maintenant votre contrôleur, qui doit s'appeler “Django/helloworld/views.py” (oui je sais le nom est pourri mais c’est bien le contrôleur, on va s’occuper de la vue après, d’un autre coté c’est bien lui qui gère les “views”, donc ...) et faites le ressembler au code suivant :

from django.template import Context, loader
from django.http import HttpResponse

def index(request):
	the_message = "Hello World !!!";
	the_title = "Hello !";
	t = loader.get_template('helloworld/index.html')
	c = Context({
	'the_message': the_message,
	'the_title': the_title,
	})
	return HttpResponse(t.render(c))

En gros pour résumer c’est la méthode qui va gérer la vue par défaut, on y met deux variables textes qu’on envoie dans un template et on file le tout au navigateur.

Maintenant, pour le template créez un dossier du nom de votre application dans le dossier “templates”, soit si vous avez suivit jusque là : “helloworld”. Dans ce dossier (donc : “Django/templates/helloworld”) créez un fichier “index.html” et copier donc dedans le code ci-dessous :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
	"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
	<title>{{the_title}}</title>
	
</head>

<body>

<h1>{{ the_message }}</h1>

</body>
</html>

C’est un fichier très simple et très banal, une page HTML dans laquelle on affiche nos deux variables.

Voilà, normalement c’est fini et ça marche, pour le vérifier ouvrez une console, placez vous dans le dossier “Django” et lancez :

python manage.py runserver

Vous devriez voir :

Validating models...
0 errors found
Django version 1.3.1, using settings 'Django.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

et puis ouvrez l’application dans votre navigateur :

http://localhost:8000/helloworld/

Vous devriez avoir un joli “Helloworld” en gros !

Félicitations vous avez votre première application Django !

Haut de page