Repository with sources and generator of https://larlet.fr/david/ https://larlet.fr/david/
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

article.md 7.4KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. title: Sortie de Django 1.0, une année de nouveautés
  2. slug: sortie-de-django-10-une-annee-de-nouveautes
  3. date: 2008-09-02 10:34:49
  4. type: post
  5. vignette: images/logos/django_.png
  6. contextual_title1: Scrum, Python et Django à Montpellier
  7. contextual_url1: 20091014-scrum-python-et-django-montpellier
  8. contextual_title2: Son propre TinyURL en Python et HTML5 avec webpy
  9. contextual_url2: 20090221-son-propre-tinyurl-en-python-et-html5-avec-webpy
  10. contextual_title3: ★ Conférences Django pour PyCon fr
  11. contextual_url3: 20080521-conferences-django-pour-pycon-fr
  12. J'étais assez sceptique lors de l'[annonce de la roadmap avant l'été](https://larlet.fr/david/biologeek/archives/20080616-django-1-0-nom-de-code-arlesienne/) mais il faut bien avouer que ça n'a pas chômé pendant ces vacances et que les développeurs sont arrivés à bout des fonctionnalités annoncées. *Chapeau bas.* Je ne vais pas faire un inventaire exhaustif des nouveautés (je vous laisse consulter [la page dédiée](http://docs.djangoproject.com/en/dev/releases/1.0/)) mais plutôt une liste des ajouts vraiment intéressants au quotidien au cours de cette dernière année.
  13. ## Support complet de l'Unicode
  14. Mergée [l'été dernier](http://code.djangoproject.com/changeset/5609), le nom de cette branche est assez explicite. Terminés les problèmes de [charset/encoding](http://sebsauvage.net/python/charsets_et_encoding.html) lorsqu'on a des données propres, sinon iconv est votre ami.
  15. ## Commandes personnalisées
  16. La refactorisation des commandes internes de Django permet [depuis un an](http://code.djangoproject.com/changeset/5898) d'ajouter très facilement des commandes personnalisées à votre projet. Vous pouvez par exemple voir ce que ça donne sur le [script qui récupère les flux affichés](http://code.biologeek.com/file/4e25f872a753/contextual/management/commands/crawlfeeds.py) dans la sidebar de ce site.
  17. ## Échappement des variables dans les templates
  18. Changement de la politique de sécurité en [novembre dernier](http://code.djangoproject.com/changeset/6671) avec les variables échappées par défaut. Selon les cas, ça peut être pénible pour les mises à jour mais c'était à mon avis utile pour permettre aux débutants de ne pas faire trop d'erreurs à ce niveau. Il est toujours possible de contourner cette restriction via le filtre `|safe` ou le tag `autoescape` (great power, great responsabilities, tout ça).
  19. ## Refactorisation des querysets
  20. [Fin avril](http://code.djangoproject.com/changeset/7477), un énorme boulot est effectué en interne afin de corriger pas mal de bugs récalcitrants, ça permet (entre autres) d'ordonner plus facilement les querysets, de spécifier les champs couverts par un `select_related`, d'optimiser la façon de filtrer les résultats, de mettre à jour plusieurs instances d'un coup et surtout, le retour de l'héritage au niveau des modèles !
  21. ## Modifications dans l'upload de fichiers
  22. [Début juillet](http://code.djangoproject.com/changeset/7814), ça commence à s'accélérer, il est maintenant possible de lire les fichiers uploadés partie par partie. Ça n'a l'air de rien mais selon les types de fichiers sur lesquels vous travaillez ça peut vraiment faire la différence.
  23. ## Nouvelle administration utilisant les newforms
  24. C'est LA fonctionnalité qui donne à mon avis à Django une longueur d'avance sur les autres frameworks. [Ajoutée mi-juillet](http://code.djangoproject.com/changeset/7967), cette branche permet de générer une interface d'administration qui tient compte des droits utilisateurs, qui est vraiment flexible et customisable. L'interface qui était réservée aux personnes de confiance (administrateur) peut maintenant être utilisée pour développer un site complet. Le problème c'est qu'à partir de cette date là, avec les vacances et les commits qui s'accélèrent il devient plus prudent d'attendre la 1.0 et cette fonctionnalité n'a pas eu la promotion qu'elle méritait à mon avis. Cela dit il est temps de tester sa puissance maintenant, je joue avec depuis quelques jours et c'est vraiment du bonheur.
  25. ## Ajout du support géographique
  26. [GeoDjango](http://geodjango.org/) est [enfin ajouté dans les contrib](http://code.djangoproject.com/changeset/8219), très beau projet avec énormément de fonctionnalités indispensables lorsque vous commencez à vouloir savoir qui habite près de qui, quelle est la distance parcourue, etc.
  27. ## Refactorisation des stockages de fichiers
  28. Bon celui là c'est [un peu mon chouchou](http://code.djangoproject.com/changeset/8244) car je l'ai testé à plusieurs reprises pour faire des retours à [Marty Alchin](http://gulopine.gamemusic.org/) et ça m'a mené à partager certains [storages utiles pour Django](http://code.larlet.fr/doc/#django-storage). Il permet par exemple de stocker ses fichiers en local pour du développement et sur S3 pour de la production ou n'importe quelle combinaison possible et imaginable.
  29. ## Nouveau système de commentaires
  30. [Pour finir](http://code.djangoproject.com/changeset/8557), ce qui était attendu depuis... toujours, un GSoC est arrivé à terme ! Les commentaires ont été entièrement réécrits, j'utilise une version alpha de cette implémentation et je ne sais pas si je mettrais à jour, peut-être à l'occasion mais elle a l'avantage de ne pas être standard et pour lutter contre le spam on ne fait pas mieux ;-).
  31. Enfin, il y a eu pas mal de ménage de fait sur d'anciennes parties de code (suppression des oldforms/validators entre autres), ce qui le rend plus facilement maintenable et une [nouvelle documentation](http://docs.djangoproject.com/en/dev/) propulsée par [Sphinx](http://sphinx.pocoo.org/) (l'outil qui mériterait un petit système de tickets pour être tout à fait parfait). **Que du bon.** De mon côté, on peut pas dire que j'ai vraiment avancé sur mes tickets, j'ai pas mal discuté de l'intérêt de l'[utilisation du tag url dans blocktrans](http://code.djangoproject.com/ticket/7239) et au final la solution est venue [presque par hasard](http://groups.google.com/group/django-developers/browse_thread/thread/5e9d28a878091346) ! J'ai pas eu le temps de m'occuper de tout ce qui était relatif à la séparation des tests mais j'ai mis à jour les traductions (ce qui représentait un sacré boulot, heureusement que j'ai eu de l'aide de [la team fr](http://www.django-fr.org/contributeurs/)).
  32. Une année riche en nouveautés qui montre le dynamisme du framework, la 1.0 n'était qu'une étape nécessaire permettant de partir d'une base saine. Il y a encore 2/3 choses qui méritent d'être remises à plat pour la 1.1 mais sinon c'est clairement positif. Avec de telles fondations, il devient de plus en plus facile de développer son projet parfait, en tenant les délais ;-). Il ne manque plus que la sortie de Starcraft 2 pour faire le grand chelem...
  33. **PS : ça sort dans quelques heures, un peu de patience, je le publie maintenant suite à une petite erreur de ma part. En attendant qu'est-ce qui vous pousse/retient d'utiliser cette version ?**
  34. **[edit du soir]** : bon finalement ça commence par [une faille de sécurité](http://www.djangoproject.com/weblog/2008/sep/02/security/) qui sera suivie d'une RC1.
  35. **[edit du 4 septembre, 1h47]** : sortie de la [version 1.0](http://www.djangoproject.com/weblog/2008/sep/03/1/). Enfin.
  36. La [page officielle de migration](http://docs.djangoproject.com/en/dev/releases/1.0-porting-guide) est un bon début si vous n'êtes pas à jour.