- Django (Framework)
-
Django (framework)
Pour les articles homonymes, voir Django.Django Dernière version 1.1 (le 29 juillet 2009) [+/−] Environnements Multiplate-forme Type Framework Web Licence BSD Site Web www.djangoproject.com Django est un framework de développement web en Python. 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 ».
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 [1].
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 urls 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. 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. et 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.[1] Le framework python quant à lui supporte AJAX (Prototype, Mochikit, jquery, dojo, ext).
- Migrations : Il n'y a pas d'outil intégré au framework pour gérer les migrations lors des modification des modèles. Mais des applications Django permettent de pallier ce manque
Voir aussi
Articles connexes
Bibliographie
Liens externes
- (en) liste des framework
- (en) Site officiel
- (en) Documentation
- (fr) Site de la communauté francophone
- (en) django sheet
- (en) Django free book
- (en) django RDF
- (en) site utilisant django
Notes et références
- Portail des logiciels libres
Catégorie : Architecture logicielle
Wikimedia Foundation. 2010.