title:      ★ Bien débuter avec Django : le framework web python pour les perfectionnistes pressés
slug:       bien-debuter-avec-django-le-framework-web-python-pour-les-perfectionnistes-presses
date:       2007-02-12 12:29:06
type:       post
vignette:   images/logos/django.png
contextual_title1:  ★ Conférences Django pour PyCon fr
contextual_url1:    20080521-conferences-django-pour-pycon-fr
contextual_title2:  Sortie de Django 1.0, une année de nouveautés
contextual_url2:    20080902-sortie-de-django-10-une-annee-de-nouveautes
contextual_title3:  ★ Astuces et bonnes pratiques Django
contextual_url3:    20080211-astuces-et-bonnes-pratiques-django

<p>Vous êtes maintenant <a href="https://larlet.fr/david/biologeek/archives/20070117-definition-et-avantages-d-un-framework-web/">convaincu qu'un framework web</a> va vous permettre d'optimiser votre temps de développement et <a href="https://larlet.fr/david/biologeek/archives/20060907-choisir-un-framework-web/">votre choix de framework</a> s'est naturellement porté sur django, notamment car il est <a href="https://larlet.fr/david/biologeek/archives/20060505-pourquoi-programmer-en-python/">écrit en python</a> et qu'il est proche de la v1.0 <a href="https://larlet.fr/david/biologeek/archives/20070108-django-1-0-etat-des-lieux/">qui promet des fonctionnalités alléchantes</a>. Il ne reste donc plus qu'à se lancer mais vous buttez peut-être sur le manque de ressources. Comment débuter&nbsp;? Quelles sont les ressources actuelles&nbsp;? Comment progresser&nbsp;? Let's go&nbsp;!</p>

<h2>Plonger</h2>


<p>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 <a href="https://larlet.fr/david/biologeek/archives/20060617-traduction-francaise-de-la-documentation-de-django-le-framework-web-python/">instructions du tutoriel de réalisation de votre première application</a>.</p>


<p>D'autres tutoriels sont intéressants pour débuter&nbsp;:</p>
<ul>
<li>En français&nbsp;: <a href="http://ghislain.thau.free.fr/blog/index.php?2006/10/21/134-creer-votre-blog-avec-django">ghis vous explique comment créer un blog pas à pas</a></li>
<li><a href="http://www-128.ibm.com/developerworks/linux/library/l-django/">Develop for the Web with Django and Python</a></li>
<li><a href="http://www.sitepoint.com/article/build-to-do-list-30-minutes">Django Djumpstart: Build a To-do List in 30 Minutes</a></li>
<li><a href="http://fallingbullets.com/blog/2006/aug/06/wordpress-clone-27-seconds-part-1-40/">WordPress Clone in 27 Seconds</a> suivi de <a href="http://fallingbullets.com/blog/2006/oct/11/wordpress-clone-part-deux/">WordPress Clone: Part Deux</a></li>
</ul>

<p>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 <a href="https://larlet.fr/david/biologeek/archives/20050218-cours-pour-apprendre-python/">cours pour apprendre python</a>. Si vous connaissez déjà un langage de script et/ou la programmation orientée objet, <a href="http://diveintopython.adrahon.org/">Dive Into Python</a> (traduit en français) est LE tutoriel à avoir lu au moins une fois pour pouvoir mettre Python sur votre <abbr title="Curriculum Vitæ">CV</abbr> ;-).</p>


<p>Si vous voulez cumuler l'apprentissage et le perfectionnement et les <a href="https://larlet.fr/david/biologeek/archives/20060121-bonnes-pratiques-de-la-programmation-en-python/">bonnes pratiques de programmation</a>, je ne peux que <a href="https://larlet.fr/david/biologeek/archives/20060319-critique-du-livre-programmation-python/">recommander encore une fois</a> le livre de Tarek <a href="http://programmation-python.org">Programmation Python</a>, la référence.</p>


<p>Enfin il est toujours bon d'avoir une <a href="http://www.mercurytide.com/whitepapers/django-cheat-sheet/">carte de référence sous la main</a> pour se souvenir des commandes/possibilités offertes par django.</p>


<h2>Progresser</h2>


<p>À partir de là, je pense qu'il y a deux méthodes pour continuer votre apprentissage. Soit vous allez lire les <a href="http://www.djangoproject.com/documentation/">pages de documentation</a> ou les billets de blogs associés aux problèmes que vous rencontrez au cours de votre propre développement, soit vous lisez le <a href="http://www.djangobook.com/">Django Book</a>. 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 <a href="http://batiste.dosimple.ch/blog/2007-01-13-1/">premier chapitre du Django Book a été traduit</a> (en attendant la suite sur le <a href="http://django-fr.org">site de django-fr</a> lorsqu'il sera prêt).</p>


<p>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 <a href="http://www.b-list.org/weblog/categories/django">James Bennett</a>, <a href="http://www2.jeffcroft.com/tag/django/">Jeff Croft</a>, <a href="http://simonwillison.net/tags/django/">Simon Willison</a>, <a href="http://www.rossp.org/tag/django/">Ross Poulton</a>, <a href="http://www.pointy-stick.com/blog/topics/software/django/">Malcolm Tredinnick</a>, <a href="http://www.jacobian.org/writing/">Jacob Kaplan-Moss</a>, <a href="http://e-scribe.com/news/tag/django">Paul Bissex</a>, <a href="http://www.coulix.net/blog/tags/all/django/">Grégory Tappéro</a>, <a href="http://davidavraamides.net/blog/tag/django/">David Avraamides</a> et <a href="http://www.socialistsoftware.com/tag/Django/">tant</a> <a href="http://fallingbullets.com/blog/tags/django/">d'autres</a>, bien souvent agrégés sur le <a href="http://www.djangoproject.com/community/">planet django</a>.</p>


<p>Le <a href="http://code.djangoproject.com/">wiki du trac de django</a> 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 <abbr title="Uniform Resource Locator">URL</abbr> 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 <a href="http://code.djangoproject.com/browser">django</a> et <a href="http://trac.django-fr.org/trac/browser/site/trunk">django-fr</a> bien entendu).</p>


<p>Pour les ressources en français, il y a les blogs de <a href="http://www.unelectronlibre.info/index.php/category/Python-django">Nicolas Steinmetz</a>, <a href="http://kib2.webfactional.com/tag/django/">kib</a>, <a href="http://skitoo.org/blog/index.php/2007/02/11/11--memento-django-en-condence">SkiT qui vous propose un memento tout en couleurs</a>, <a href="http://www.jondesign.net/articles/2006/jul/02/langue-depuis-url-django-url-locale-middleware/">Jon qui vous apprend à créer un site bilingue</a> et bien sûr les articles sur ce site (j'espère n'avoir oublié personne...).</p>


<h2>Trouver de l'aide</h2>


<p>Les listes de diffusion <a href="http://lists.afpy.org/cgi-bin/mailman/listinfo/django">francophone</a> et <a href="http://groups.google.com/group/django-users/">anglaise</a> sont actives, il en est de même pour les salons de discussion, #django-fr et #django sur le réseau freenode.</p>


<p>Des <a href="http://djangoforums.org/">forums en anglais</a> sont aussi en place depuis peu (mais je sais pas du tout ce que ça donne).</p>


<h2>Concrétiser</h2>


<p><strong>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</strong>. 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&nbsp;!</p>
