Django un point zéro

Ven 05 septembre 2008

L'ensemble de la Djangophonie a fait écho de la sortie, le 3 septembre dernier, de la version 1.0 du framework web Django.

Pour ma part, concernant une application développée dans le cadre professionnel, j'ai eu l'occasion de migrer d'un 0.96 à un 1.0. En suivant la documentation qui est d'une absolue perfection, on obtient en quelques minutes une version améliorée d'un modèle simple, pour lequel les tests passent et le fonctionnement général du site est identique. S'il fallait noter un framework sur la qualité de sa documentation, Django obtiendrait sans doute un 10/10.

La partie qui a le plus changé est sans doute le mécanisme de l'API de la base de données, ainsi que la branche "newforms-admin" qui refond totalement la manière de générer l'interface de gestion automatique. La création d'un fichier "admin.py" est d'ailleurs extrêmement facilité par ce snippet qui crée le fichier en scannant le fichier "models.py".

Pour ma part, je regrette quand même la disparition des validateurs, qui permettaient d'obtenir un début de contrôle de données très simplement. Au prix de quelques contorsions, c'est encore possible, mais je préférais définir simplement en deux lignes un validateur personnalisé (genre "un nombre entier qui doit se trouver entre 0 et 100 pour un pourcentage"). Less code is more.

En revanche, la partie "test" est absolument bluffante. Non seulement on peut facilement tester les modèles et leurs méthodes, c'est à dire le fonctionnement "sous le capot" de ton application, mais on peut également tester les vues, et mêmes les vues nécessitant une authentification, pour s'assurer que les pages renvoyées sont correctes. Habituellement, cette partie donnait lieu à des tests manuels (genre, pour une boutique, je me connecte, je crée un panier ou encore je remplis un formulaire d'inscription avec des données bidon, ou invalides, ou correctes...). Là, tout peut être résumé à des tests unitaires complets, lancés aussi régulièrement que possibles.

Franchement, cela ouvre des milliers de possibilités, dont celle de coder un site web sans jamais lancer le moindre navigateur. Si, si, on peut.

La migration de JHLP en Django 1.0 me chatouille ; il faudra que je réfléchisse à la question... Mais à mon avis, si je devais commencer une appli en Django ou migrer une application simple en 1.0, je foncerais sans hésiter.

Pour information, chez mon hébergeur Alwaysdata, Django 1.0 est déjà disponible. Qui parlait de réactivité, déjà ?