- Django (framework)
-
Pour les articles homonymes, voir Django.
Django Développeur Lawrence Journal-World Première version 21 juillet 2005 Dernière version 1.3 (23 mars 2011) [+/-] Écrit en Python Environnement Multiplate-forme Type Framework Web Licence BSD Site web www.djangoproject.com modifier Django est un framework de développement web en Python open-source. Il a pour but de rendre le développement web simple et rapide. Le projet a pour slogan « Le framework web pour les perfectionnistes sous pression ». Développé au départ pour les sites de la compagnie de Lawrence, Django a été publié sous licence BSD à partir de Juillet 2005.
Depuis Juin 2008, la Django Software Foundation s'occupe du développement et de la promotion du framework.
Sommaire
Principes
Django est un framework qui s'inspire du principe MVC ou MTV (la vue est gérée par un template) composé de 3 parties distinctes :
- Un langage de template flexible qui permet de générer du HTML, XML ou tout autre format texte ;
- Un contrôleur fourni sous la forme d'un "remapping" d'URL à base d'expressions rationnelles ;
- Une API HTML d'accès aux données est automatiquement générée par le framework compatible CRUD. Inutile d'écrire des requêtes SQL associées à des formulaires, les requêtes SQL sont générées automatiquement par l'ORM .
En plus de l'API d'accès aux données, une interface d'administration fonctionnelle est générée depuis le modèle de données. Un système de validation des données entrée par l'utilisateur est également disponible et permet d'afficher des messages d'erreurs automatiques.
Sont également inclus :
- un serveur web léger permettant de développer et tester ses applications en temps réel sans déploiement ;
- un système élaboré de traitement des formulaires muni de Widgets permettant d'interagir entre du HTML et une base de données. De nombreuses possibilités de contrôles et de traitements sont fournies ;
- un framework de cache web pouvant utiliser différentes méthodes (MemCached, système de fichier, base de données, personnalisé) ;
- le support de classes intermédiaires (middleware) qui peuvent être placées à des stades variés du traitement des requêtes pour intégrer des traitements particuliers (cache, internationalisation, accès…) ;
- un support complet d'Unicode.
Histoire
Son code a été originellement développé pour un journal local de la ville de Lawrence, dans le Kansas.
Il a été nommé ainsi en souvenir de Django Reinhardt.
Le but premier de Django est de faciliter la mise en œuvre de sites web complexes interfacés à des bases de données. Par framework, Django peut être considéré comme une boite à outils où chaque module peut fonctionner de façon indépendante. Le plus bel exemple de cette modularité est la plate-forme de développement Google App Engine, où l'ORM de base a été remplacé par une API sur les BigTable de Google. Guido Van Rossum, le créateur du langage Python a activement participé à cette plate-forme.
Forces et faiblesses de Django
Les forces
- Les vues génériques : il s'agit de vues permettant de traiter les cas les plus courants du développement web de manière très simple. Elles permettent par exemple de lister des objets avec une gestion de la pagination, de lister des objets organisés par date avec des URL du type (année)/(mois)/(jour)/élément à afficher. Plus d'informations sont disponibles dans la documentation sur les vues génériques.
- Le système d'authentification : User authentication in Django
- La création de pages statiques : The flatpages app
- La documentation : Django possède une très bonne documentation anglaise. Cette documentation, au format ReStructuredText (ReST) est compatible avec le projet Sphinx.
- Les exceptions : les Exceptions et backtraces Python sont bien gérées dans Django et apparaissent dans les pages d'erreur 500. On peut avoir une bonne idée des variables d'environnement et du code ayant provoqué l'exception. Des efforts sont menés pour inclure d'autres outils comme par exemple la barre de debug de Symfony (Django Debug Toolbar)
Les faiblesses
- L'AJAX : Django en tant que framework ne permet pas, seul, l'intégration d'AJAX côté client web. Ceci est un choix de l'équipe de développement qui préfère laisser à l'utilisateur le choix de la librairie AJAX à combiner avec Django (Prototype, Mochikit, jQuery, dojo, ext, etc.)[1]
- Migrations : Il n'y a pas d'outil intégré au framework pour gérer les migrations lors des modifications des modèles. Mais des applications Django permettent de palier ce manque.
Voir aussi
Articles connexes
Bibliographie
Liens externes
- (fr) Site de la communauté francophone
- (fr) Et le meilleur framework web Python est… Django !
- (en) Site officiel
- (en) Documentation
- (en) django sheet
- (en) Django free book
- (en) django RDF
- (en) sites utilisant django
- (en) Popularité du paquet python-django
Notes et références
Catégorie :- Framework de programmation
Wikimedia Foundation. 2010.