Vous êtes sur la page 1sur 6

Tutos Django

Apprennez et comprenez Django.


Retrouvez-moi sur...
Blog > 2011 > Oct > 28 > Bien dbuter avec Django
Bien dbuter avec Django
Ecrit par guillaumecisco le 28 octobre 2011 sous Django, Zinnia.
Nous utiliserons tout au long de ce blog la dernire version en cours stable de Django (
l'heure o je vous parle : 1.3.1).
La documentation actuelle de Django explique trs bien comment l'installer et propose un
tutorial de dcouverte en 4 tapes :
Documentation officielle <- alors OK c'est en anglais, mais la documentation est trs trs
bien faite et permet d'apprendre correctement les bases de Django.
Une documentation en Franais existe aussi mais elle couvre Django 1.1.1 et de lgres
diffrences sont prsentes par rapport la dernire version en cours. tant donn que le site
Django-fr s'occupe de traduire la documentation officielle de Django, je ne traduirai pas
moi-mme ce qui est dfinit dans la documentation de la version 1.3.1.
Le pouvoir de Django, actuellement le framework web le plus populaire pour python, vient en
partie du fait qu'il dispose d'un ORM intgr et d'une interface d'administration
automatiquement gnre simple mettre en place et utiliser.
Lorsque vous rencontrez une erreur qui n'est pas expliqu dans la documentation officielle, si
une recherche google de l'erreur ne vous a pas permis de comprendre votre problme,
intressez-vous au site stackoverflow qui est une excellente mine d'informations pour les
dveloppeurs.
Aprs cette petite prsentation, passons la pratique et ralisons notre premier projet Django
qui va afficher une page "Hello World !"
Nous utiliserons ici un environnement de type linux, dans mon cas Ubuntu.
C'est parti ! Tout d'abord on rcupre et installe django si ce n'est pas dj fait (assurez-vous
Annonces Google Django Python Django Django Python Django Web
Tutos Django - Bien dbuter avec Django http://tutos-django.com/2011/10/28/bien-debuter-av...
1 sur 6 19/02/2012 21:27
d'avoir les droits sudo) :
$ apt-get install python-setuptools
$ easy_install django
Crons prsent notre projet Django :
$ django-admin.py startproject mysite
Un projet peut contenir plusieurs applications qui peuvent tre rutilisables ensuite dans
d'autres projets Django. Ce qui permet d'avoir une grande portabilit du code et d'utiliser des
applications dj cres par d'autres personnes afin d'avancer plus vite.
C'est le cas par exemple de ce site qui utilise la base de l'application django-blog-zinnia pour
fonctionner.
Crons notre application :
$ cd mysite
$ python manage.py startapp helloworld
Maintenant que notre application est cre, il va falloir que nous l'ajoutions notre projet,
pour cela, nous allons simplement diter le fichier settings.py, en ajoutant la variable
INSTALLED_APPS, le nom de notre application :
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',
)
Au passage, nous pourrions dcommenter 'django.contrib.admin' afin d'autognrer
l'interface d'administration de notre site, mais pour l'instant nous ne l'utiliserons pas.
Nous pouvons galement modifier d'autres variables dans ce fichier savoir l'utilisation de la
base de donnes avec ce projet.
Bien que nous n'utiliserons pas de base de donnes, ni de modles pour ce tutorial, nous
allons quand mme dfinir une base de donnes de dveloppement de type sqlite3. Pour
cela rien de plus facile, on modifie ces lignes :
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': '/home/guillaume/ma_bdd_de_dev',
'USER': '',
Tutos Django - Bien dbuter avec Django http://tutos-django.com/2011/10/28/bien-debuter-av...
2 sur 6 19/02/2012 21:27
'PASSWORD': '',
'HOST': '',
'PORT': '',
}
}
Ici je dclare 'NAME': '/home/guillaume/ma_bdd_de_dev' comme chemin vers mon fichier de
base de donnes. Vous n'avez pas besoin de crer ce fichier, il se crera automatiquement.
Nous allons maintenant synchroniser notre projet avec notre base de donnes et lancer notre
serveur !
Excutez cette commande et rpondez aux questions poses :
$ python manage.py syncdb
Une fois toutes les questions rpondues, lancez votre serveur :
$ python manage.py runserver
Validating models...
0 errors found
Django version 1.3.1, using settings 'mysite.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
Voila, vous pouvez maintenant accder l'url http://127.0.0.1:8000/ depuis votre navigateur
prfr et devriez voir ceci :
Vous pouvez prsent remarquer que nous avons pris de l'avance sur cette page en crant
notre fichier de base de donnes et en crant notre application.
Maintenant nous allons dvelopper notre application !
Nous allons commencer par arrter notre serveur en effectuant la commande Ctrl+C, puis
nous allons crer un dossier nomm 'templates' dans notre application et y ajouter une page
html.
$ cd helloworld
$ mkdir templates
$ cd templates
$ touch index.html
Notre fichier index.html va contenir ce code :
Tutos Django - Bien dbuter avec Django http://tutos-django.com/2011/10/28/bien-debuter-av...
3 sur 6 19/02/2012 21:27
<html>
<head>
<title> HelloWorld ! </title>
</head>
<body>
<p>Hello World !</p>
</body>
</html>
Maintenant, renseignons ce fichier index.html dans notre projet, pour cela nous allons
modifier le fichier urls.py prsents deux dossiers plus haut :
urlpatterns = patterns('',
url(r'^$', 'mysite.helloworld.views.home', name='home'),
)
Notre fichier settings.py doit savoir ou trouver notre dossier de templates que nous avons
prcdemment cr, nous allons donc modifier la variable TEMPLATE_DIRS vers le chemin
de notre dossier templates, dans mon cas:
TEMPLATE_DIRS = (
'/home/guillaume/mysite/helloworld/templates',
)
Enfin, comme Django fonctionne sous le principe d'un modle MVC (Modle/Vue/Contrleur),
nous n'avons plus qu' crer notre contrleur que nous avons nomm "home" dans notre
fichier urls.py plus haut et qui doit se trouver dans le fichier views.py, comme nous l'avons
prcdemment crit : url(r'^$', 'mysite.helloworld.views.home', name='home')
On ouvre donc ce fichier et on l'dite de cette faon :
from django.shortcuts import render_to_response
def home(request):
return render_to_response('index.html')
Ici on importe le module render_to_reponse qui permet de rediriger vers la vue souhaite, et
on dfinit notre mthode 'home'.
On peut prsent relancer notre serveur et observer notre nouveau rendu :)
Tutos Django - Bien dbuter avec Django http://tutos-django.com/2011/10/28/bien-debuter-av...
4 sur 6 19/02/2012 21:27
Et voila ! Mission accomplie !
Vous venez de dcouvrir trs rapidement comment fonctionne Django et son modle MVC, et
afficher votre premire page html.
Notez que nous n'tions pas oblige de crer une page html pour ce type d'exemple mais nous
aurions pu directement crire dans notre vue :
from django.http import HttpResponse
def home(request):
return HttpResponse("HelloWorld")
Essayez !
Ici nous n'avons pas encore abord la cration de modles, ni la manipulation de donne au
niveau du contrleur pour l'afficher dans une vue.
Cela sera vu dans un autre tutorial plus complet ;) en attendant, n'hsitez pas parcourir le
tutorial en 4 tapes de la documentation Django, qui vous permettra d'en dcouvrir bien plus !
Tags : django helloworld tutorial zinnia
Url raccourcie : http://tutos-django.com/6/
Discussions : 1 commentaire
Article suivant
Django et son ORM
Article prcdent
Bienvenue sur Tutos Django !
Articles similaires
L'Administration en Django
Tutos Django - Bien dbuter avec Django http://tutos-django.com/2011/10/28/bien-debuter-av...
5 sur 6 19/02/2012 21:27
Powered by Django and Zinnia 0.10.dev.
Bienvenue sur Tutos Django !
Django et son ORM
Django shortcuts - Raccourcis
L'encapsulation des Templates
Commentaires
Cajoline le 23 jan. 2012 11:44:50
Merci pour ce Tuto
1.
Pingbacks
Les pingbacks sont ouverts.
Trackbacks
URL de Trackback
Tutos Django - Bien dbuter avec Django http://tutos-django.com/2011/10/28/bien-debuter-av...
6 sur 6 19/02/2012 21:27

Vous aimerez peut-être aussi