# ★ Bien débuter avec Django : le framework web python pour les perfectionnistes pressés

Vous êtes maintenant convaincu qu'un framework web va vous permettre d'optimiser votre temps de développement et votre choix de framework s'est naturellement porté sur django, notamment car il est écrit en python et qu'il est proche de la v1.0 qui promet des fonctionnalités alléchantes. Il ne reste donc plus qu'à se lancer mais vous buttez peut-être sur le manque de ressources. Comment débuter ? Quelles sont les ressources actuelles ? Comment progresser ? Let's go !

## Plonger

La première étape n'est pas très coûteuse en temps et vous permettra d'avoir un avant-goût des capacités du framework, il s'agit de suivre les instructions du tutoriel de réalisation de votre première application.

D'autres tutoriels sont intéressants pour débuter :

- En français : ghis vous explique comment créer un blog pas à pas
- Develop for the Web with Django and Python
- Django Djumpstart: Build a To-do List in 30 Minutes
- WordPress Clone in 27 Seconds suivi de WordPress Clone: Part Deux

Ensuite, tout dépend de votre niveau actuel en python. Si vous n'y connaissez strictement rien, je vous invite à aller jeter un œil aux cours pour apprendre python. Si vous connaissez déjà un langage de script et/ou la programmation orientée objet, Dive Into Python (traduit en français) est LE tutoriel à avoir lu au moins une fois pour pouvoir mettre Python sur votre CV ;-).

Si vous voulez cumuler l'apprentissage et le perfectionnement et les bonnes pratiques de programmation, je ne peux que recommander encore une fois le livre de Tarek Programmation Python, la référence.

Enfin il est toujours bon d'avoir une carte de référence sous la main pour se souvenir des commandes/possibilités offertes par django.

## Progresser

À partir de là, je pense qu'il y a deux méthodes pour continuer votre apprentissage. Soit vous allez lire les pages de documentation ou les billets de blogs associés aux problèmes que vous rencontrez au cours de votre propre développement, soit vous lisez le Django Book. Les deux solutions ont leurs avantages et leurs inconvénients, je pense que ça dépend pas mal de votre mode d'intégration de l'information. Personnellement, j'ai adopté la première méthode pour mon apprentissage mais à l'époque le livre n'existait pas donc bon j'avais pas vraiment le choix :-). Sachez que le premier chapitre du Django Book a été traduit (en attendant la suite sur le site de django-fr lorsqu'il sera prêt).

En ce qui concerne les ressources de type blog, les catégories django des principaux développeurs (et autres) sont de véritables mines d'information, notamment ceux de James Bennett, Jeff Croft, Simon Willison, Ross Poulton, Malcolm Tredinnick, Jacob Kaplan-Moss, Paul Bissex, Grégory Tappéro, David Avraamides et tant d'autres, bien souvent agrégés sur le planet django.

Le wiki du trac de django est aussi une ressource exceptionnelle, l'information n'est pas toujours facile à trouver mais si vous cherchez à réaliser quelque chose de précis, commencez par là. Consulter le code produit par d'autres personnes pour s'inspirer des expressions régulières des URL ou des modèles est aussi une bonne manière de progresser, il y a de nombreux dépôts publics (à commencer par ceux de django et django-fr bien entendu).

Pour les ressources en français, il y a les blogs de Nicolas Steinmetz, kib, SkiT qui vous propose un memento tout en couleurs, Jon qui vous apprend à créer un site bilingue et bien sûr les articles sur ce site (j'espère n'avoir oublié personne...).

## Trouver de l'aide

Les listes de diffusion francophone et anglaise sont actives, il en est de même pour les salons de discussion, #django-fr et #django sur le réseau freenode.

Des forums en anglais sont aussi en place depuis peu (mais je sais pas du tout ce que ça donne).

## Concrétiser

La meilleure façon d'apprendre c'est encore de manipuler, de créer, d'avoir un projet et d'essayer de le concrétiser. Je suis assez mal placé pour donner des leçons à ce sujet, c'est pourquoi j'ai décidé de décrire sur ce site les différentes étapes du processus de refonte. Comme vous avez pu vous en apercevoir, les ressources francophones sont limitées et je pense qu'un exemple de plus n'est pas superflu (puis au moins ça m'obligera à avancer...), un prochain billet décrira les étapes par lesquelles je compte passer. En attendant, n'hésitez pas à plonger dans django !

### Articles peut-être en rapport

- ★ Conférences Django pour PyCon fr
- Sortie de Django 1.0, une année de nouveautés
- ★ Astuces et bonnes pratiques Django

### Commentaires

LostInBrittany le 12/02/2007 :

Wow!
Je cherchais juste un billet comme ça, avec tous les bons liens qu'il me faut pour plonger dans Django...
Merci!

JS le 12/02/2007 :

Enorme.
Merci beaucoup, après 1 an de plone, je vais peut etre m'y mettre !
Il serait temps...

kNo' le 12/02/2007 :

Manque aussi un choix d'hébergements proposant Django et/ou mod_python.
La liste officielle :
code.djangoproject.com/wi...
ne montre pas beaucoup d'hébergeur en France (si je vois bien ; je peux me tromper)

kib2 le 12/02/2007 :

Salut David,
vous aurez le chapitre ce soir au format OpenOffice et en PDF pour impression, pour le moment je pars au taf :) Qu'en est-il des permissions ?
A ce soir donc,
Kib.

David, biologeek le 12/02/2007 :

@LostInBrittany & JS : enjoy! :-)
@kNo' : oui, c'est LE gros problème à mon avis. Il faut partir soit sur du dédié (cher), soit WebFaction qui a l'air de bien gérer ça (ils sont actifs sur les mailing-lists, etc) : www.webfaction.com/
@kib : les sources sont sur le dépôt subversion de django-fr. On attend la finalisation du livre pour continuer, d'après les auteurs c'est plus prudent. Pour les permissions, free as in speech : www.djangobook.com/licens...

NiKo le 12/02/2007 :

Allez zou, dès que j'ai un moment je m'y met : comme ça je pourrais enfin me faire une opinion par moi-même :)
Merci pour tout ces bons tuyaux en tout cas :)

kib2 le 12/02/2007 :

Merci pour les infos.
J'ai fait ça un peu à l'arrache car je manque de temps, le chapitre 1 du DjangoBook en odt et pdf par ici:
h**p://kib2.free.fr/reST_tools/Django_book_fr/
Si vous voyez des coquilles, merci de me prévenir.
Si une personne a du temps à consacrer à une feuille de style oo, je pourrai ainsi m'en servir pour peaufiner tout ça...

xxc le 12/02/2007 :

Je ne laisse pas souvent de commentaire (jamais ?..) mais là s'en est trop !!.. :D
Visuellement attrayant et au contenu à chaque fois instructif, ton site et pour moi une véritable mine d'or sans égal ..
Alors MERCI et bravo !
Il ne me reste plus maintenant qu'à faire comme tu dis : "manipuler, de créer, d'avoir un projet et d'essayer de le concrétiser" plutôt que de me dire "python ou ruby" tous les soirs sans rien tenter...

David, biologeek le 12/02/2007 :

@NiKo : aïe, aïe, aïe, ça va troller bébé ;-).
@kib : tu veux que je les mette en ligne sur ce billet ?
@xxc : oh, merci :')

NiCoS le 12/02/2007 :

Aie, vais être contraint de me remettre à coder maintenant que je suis cité :-D
Vais enrichir de ce pas mes favoris & aggrégateur de qqs urls :-D

kib2 le 12/02/2007 :

Salut David,
pas de problème, tu peux.
Vu que je change d'ordi demain, je viens de retrouver mes vieux tutos sur Django (traduction de ceux de Roos.P). Vu qu'ils étaient écrits en reST, ça m'a pris deux minutes pour les mettre en ligne :
h**p://kib2.webfactional.com/django_tuto1/
h**p://kib2.webfactional.com/django_tuto2/
Pas encore tout à fait au point pour les CSS, mais c'est toujours ça de pris !
Je n'ai jamais eû le temps d'écrire la partie 3, si quelqu'un veux s'y mettre...

Thomas le 12/02/2007 :

Très bon article, c'est clair que le problème pour chaque débutant est de savoir par où commencer. J'ai essayé de m'y mettre, mais sans grand résultat, en fait je n'arrivais pas à la phase concrétisation!
Ce qui manque aussi, c'est les hébergeurs! pour du python c'est cher ! Pour utilser le mod_python il faut avoir accès au httpd.conf, ce qui n'est pas permis chez la plupart des hébergeurs.
Mais bon, faudarit que je trouve un "vrai" projet et je m'y mettrais!

giz404 le 13/02/2007 :

Voilà un billet comme on les aime, une mine d'information :)
Je découvre Django sur mon temps libre, et je pense que tes liens m'y aideront grandement.
Pour ce que j'en ai vu jusqu'à présent, ça semble vraiment intuitif (alors que je ne connais pas python) mais le problème reste toujours l'hébergement...

Nawak le 14/02/2007 :

Tiens un trés rare Blog francophone sur python >> hop en favoris :).
ça m'a l'air sacrement costaux Django dommage qu'il y en ai si peu d'herbergeur implémentant python :((
Ps: c'est joli ici , ça fait du bien aux yeux :p

Christian Fauré le 24/02/2007 :

Bon, va falloir arrêter de parler si bien des frameworks web en python, parce que çà donne vraiment envie de tout arrêter et d'essayer !
Bien sûr, ne t'arrête surtout pas ;-)
Et merci.

Sébastien le 21/11/2007 :

Bravo pour cette page très utile!
Il manque cependant une information qui peut paraître importante pour les feignants de mon espèce: Quels sont les IDEs pour développer Django?
Je pense surtout: accéder facilement à la documentation du framework et de python, ainsi qu'à l'auto-completion (très pratique quand on débute).

Sébastien le 21/11/2007 :

Ah! et j'ai oublier de parler de l'intégration du debbugage comme fonctionnalité bien appréciable de l'ide idéal!

David, biologeek le 22/11/2007 :

@Sébastien :
> Quels sont les IDEs pour développer Django?
Beaucoup utilisent pydev avec eclipse mais j'ai l'habitude de dire qu'un simple éditeur de texte est bien suffisant pour faire du python (et je suis assez allergique à ces usines à gaz), pour ma part j'utilise Scite ou Textmate selon l'OS sur lequel je suis.

FrankLamontagne le 19/12/2007 :

Django m'intrigue depuis le début, mais comme j'ai choisi Ruby On Rails comme Framework, je n'ai jamais pris le temps de le regarder.
Question comme ça, quelles sont les plus grandes forces de Django par rapport à Rails? Et si tu n'as pas essayé Rails, quelles sont les forces de Django tout court?

David, biologeek le 22/12/2007 :

@FrankLamontagne :
Alors mon avis doit un peu dater car je n'ai pas remis les mains dans RoR depuis quelques mois mais de ce que je m'en souviens il y a 3 choses (au moins) qui sont plus intéressantes avec Django :
* l'interface auto-générée qui est bien utile pour l'administrateur et pour tester ce qui a été rentré durant le développement par exemple. Une nouvelle branche qui commence à être assez stable permet d'aller beaucoup plus loin à ce niveau là donc ça va vraiment devenir intéressant pour l'utilisateur final ;
* la gestion de l'unicode est maintenant complète dans Django et je crois qu'il y a encore pas mal de problèmes avec RoR (?) ;
* les performances, je ne suis pas fan des benchmarks mais lorsque Django arrive en tête de plusieurs je me dis qu'il y a quand même une différence à ce niveau là.
Voila, je dois oublier pas mal de trucs mais c'est ce qui me vient là. Après j'aime beaucoup Python donc ça influe aussi dans mon choix actuel.