FLASH INFORMATIQUE FI



public averti Choix d’un framework - Django


L’arrivée des blogs, des CMS et des réseaux sociaux a définitivement changé notre manière de fabriquer le Web. Des applications complexes ont progressivement remplacé les pages HTML enrichies de scripts CGI. Le coût de développement important de systèmes au final très similaires a permis l’émergence des frameworks Web. Parmi la pléthore de ces outils, nous avons opté pour Django.



The advent of blogs, CMSs and RSSs have forever changed our manner to build the Web. Complex applications have gradually replaced HTML pages improved with CGI scripts. The high cost of development of very similar systems has made possible the ermergence of Web frameworks. Faced with the abondance of tools we have chosen Django.


Grégory FAVRE


Le développement d’une application Web n’est pas un processus simple. Après avoir énuméré et décrit toutes les fonctions souhaitées, et avant même de pouvoir s’attaquer à toute forme de logique métier, il reste à :

  • mettre en place une base de données ;
  • implémenter les tables et leurs relations ;
  • transformer tout ceci en HTML ;
  • définir les URL et comment elles se retrouveront associées aux données ;
  • gérer les utilisateurs et leurs droits d’accès ;
  • ...

C’est à ce stade qu’intervient le framework  Web. Inutile de réinventer la roue, d’autres l’ont déjà fait, et - il faut l’admettre - considérablement mieux que nous.

Django - The Web framework for perfectionists with deadlines

Django est un framework open source basé sur python. Ses créateurs ont choisi de fournir un outil intégré, plutôt qu’un assemblage de projets préexistants (par opposition à son concurrent TurboGears).

Gestion des données

La création d’une application Web suppose généralement l’interaction avec une base de données. La connexion à une base ainsi que l’écriture de requêtes sont des tâches relativement simples, mais qui présentent des risques :

  • types de données incompatibles entre le langage de programmation et le SGBD    ;
  • syntaxe SQL incompatible entre deux SGBD différents ;
  • problèmes de sécurité (injection SQL).

Afin de pallier cela, Django propose un ORM   , qui masque la complexité de la base de données au profit de simples classes python appelées modèles. Il devient ainsi aisé de développer dans un environnement léger comme SQLite et de passer en production sur un moteur plus solide comme PostgreSQL. Par ailleurs, le système s’assure lui-même de la conversion des données vers la base, déjouant au passage les actions malveillantes.
L’autre force de la gestion des modèles de données avec Django est la génération automatique des formulaires de recherche, d’ajout ou d’édition.

Génération d’HTML

Le développeur a souvent la mauvaise idée de mélanger l’HTML servant à l’interface avec la logique métier de son application, à plus forte raison s’il a été précédemment exposé à PHP. Le moindre changement de design impose alors d’aller modifier du code, avec tous les dangers que cela peut représenter.
Django propose un système de templating, permettant de séparer proprement le code HTML de la logique métier. Un graphiste peut ainsi facilement travailler sur l’affichage indépendamment des travaux réalisés par les développeurs. En outre, la structure proposée par Django est extrêmement souple et permet de facilement morceler une page en blocs fonctionnels séparés.

Gestion des URL

La différence de lisibilité entre l’adresse monsite.com/blog/vive-python et monsite.com/blog.php ?id=234 est flagrante. Posséder des adresses parlantes est non seulement un atout d’accessibilité, mais facilite en outre le travail des moteurs de recherche.
Django propose un système de gestion des URL efficace et simple, basé sur des listes d’expressions régulières. Ce système permet de découpler complètement les adresses du code.

Internationalisation

La traduction des applications Web est une évidence dans un pays quadrilingue. Django propose un système d’internationalisation facile à mettre en place, que ce soit dans les templates HTML ou dans le code d’une fonction métier. Les outils proposés savent scanner les fichiers et rassembler les phrases à traduire dans un seul fichier par langue.

Gestion des utilisateurs

Lorsque l’on doit gérer des transactions, garder un état cohérent tout au long du processus est indispensable. Qui plus est, on attend généralement d’une application de proposer un moyen d’identification, ainsi qu’une gestion des droits. La complexité d’un tel système rend son développement fastidieux. Django propose une gestion intégrée des utilisateurs. Ce système est extrêmement facile à personnaliser de manière à offrir, par exemple, une authentification via Shibboleth   .

Conclusion

Django permet de remplir toutes nos attentes vis-à-vis d’un système. Il permet de s’économiser du temps de développement et par la même de focaliser sur ce qui compte vraiment : la logique métier. À titre d’exemple, un système de blog simple avec interface d’administration tient en moins de 60 lignes de code !



Glossaire

ORM
(Object-Relational Mapper) : technique de programmation faisant le lien entre le monde de la base de données et le monde de la programmation objet.
SGBD
Système de Gestion de Bases de Données. Ensemble de logiciels servant à la manipulation de bases de données
Shibboleth
mécanisme permettant de déléguer l’authentification d’un utilisateur à son établissement d’origine.


Cherchez ...

- dans tous les Flash informatique
(entre 1986 et 2001: seulement sur les titres et auteurs)
- par mot-clé

Avertissement

Cette page est un article d'une publication de l'EPFL.
Le contenu et certains liens ne sont peut-être plus d'actualité.

Responsabilité

Les articles n'engagent que leurs auteurs, sauf ceux qui concernent de façon évidente des prestations officielles (sous la responsabilité du DIT ou d'autres entités). Toute reproduction, même partielle, n'est autorisée qu'avec l'accord de la rédaction et des auteurs.


Archives sur clé USB

Le Flash informatique ne paraîtra plus. Le dernier numéro est daté de décembre 2013.

Taguage des articles

Depuis 2010, pour aider le lecteur, les articles sont taggués:
  •   tout public
    que vous soyiez utilisateur occasionnel du PC familial, ou bien simplement propriétaire d'un iPhone, lisez l'article marqué tout public, vous y apprendrez plein de choses qui vous permettront de mieux appréhender ces technologies qui envahissent votre quotidien
  •   public averti
    l'article parle de concepts techniques, mais à la portée de toute personne intéressée par les dessous des nouvelles technologies
  •   expert
    le sujet abordé n'intéresse que peu de lecteurs, mais ceux-là seront ravis d'approfondir un thème, d'en savoir plus sur un nouveau langage.