Django (framework) Pour les articles homonymes, voir Django. Django est un fram
Django (framework) Pour les articles homonymes, voir Django. Django est un framework open-source de développement web en Python. Il a pour but de rendre le développement web 2.0 simple et rapide. Pour cette raison, le projet a pour slogan « Le framework web pour les perfectionnistes sous pression ». Développé en 2003 pour le journal local de Lawrence (Kansas), Django a été publié sous licence BSD à partir de juillet 2005. Depuis juin 2008, la Django Software Foundation s’oc- cupe du développement et de la promotion du frame- work. En plus de cette promotion régulière, des confé- rences entre développeurs et utilisateurs de Django sont organisées deux fois par an depuis 2008. Nommées Djan- goCon, une se déroule en Europe et l'autre aux États-Unis. Plusieurs sites grand public sont désormais fondés sur le framework, dont Pinterest[4], Instagram[5] ou encore Mozilla[6]. 1 Principes Django est un framework qui s’inspire du principe MVC ou MTV (la vue est gérée par un template) composé de trois parties distinctes : 1. Un langage de templates flexible qui permet de gé- nérer du HTML, XML ou tout autre format texte ; 2. Un contrôleur fourni sous la forme d'un « remapping » d'URL à base d'expressions rationnelles ; 3. Une API d'accès aux données est automatiquement générée par le framework compatible CRUD. In- utile d'écrire des requêtes SQL associées à des for- mulaires, les requêtes SQL sont générées automati- quement 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 mo- dèle de données. Un système de validation des données entrées par l'utilisateur est également disponible et per- met 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éploie- ment ; Capture d'écran de l'interface d'administration. • 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 pos- sibilité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 traite- ment des requêtes pour intégrer des traitements par- ticuliers (cache, internationalisation, accès…) ; • un support complet d'Unicode. Par framework, Django peut être considéré comme une boîte à outils où chaque module peut fonctionner de façon indépendante. Un exemple de cette modularité est la plate-forme de dé- veloppement Google App Engine, où l'ORM de base a été 1 2 3 FORCES ET FAIBLESSES DE DJANGO remplacé par une API sur les BigTable de Google. Guido Van Rossum, le créateur du langage Python, a activement participé à cette plate-forme. 2 Histoire Le framework a été originellement développé pour un journal local de la ville de Lawrence, dans le Kansas à partir de 2003, par Adrian Holovaty (en) et Simon Willi- son (en)[7],[8],[9]. L'idée d'origine du framework était de permettre de développer des sites web complets, inter- facés avec une base de données, dans un laps de temps très court[9]. Le but de Django à l'origine est de répondre aux contraintes des journalistes : l'administration géné- rée par le framework permet ainsi un développement ai- sé de fonctionnalités axé « contenu ». Le framework se voulait également accessible, afin d'éviter le recrutement d'experts en développement pour les journaux[9]. Le fra- mework a été nommé ainsi en souvenir de Django Rein- hardt, musicien de jazz[7],[8]. En 2005, l'agence de presse décide de publier le frame- work au public, sous la licence BSD[7]. C'est depuis cette ouverture que sa notoriété augmente. Il sera repris plus tard, en juin 2008 par la fondation Django Software[10] qui maintient encore aujourd'hui la communauté et le dé- veloppement du framework. À la suite de cette reprise, la version 1.0 du framework sort quelques mois plus tard[11]. À partir de cette version, les mises à jour se stabilisent à une version majeure annuelle. En juin 2015, une politique de publication est mise au point, pour sortir une nouvelle version tous les huit mois, et une version avec un support étendu tous les deux ans[12]. À cette occasion, il est annoncé que le support de Python 2 ne serait probablement assuré que jusqu'à la version 1.11, qui sera la dernière de la branche 1.x[12]. 2.1 Historique des versions Après la mise à disposition public par le journal Law- rence, le développement open-source de Django com- mence à la version 0.90. Les premières versions sont numérotés jusqu'à 0.96 et ont pour but de stabiliser l'interface de programmation principale, et chaque ver- sion apporte donc de nombreuses modifications dans la façon d'utiliser le framework[13]. La sortie de la version 1.0 marque le début de la maturité du framework, avec une interface qui se veut compatible avec les versions futures[14]. Un guide est publié pour permettre aux uti- lisateurs de migrer de Django 0.96 à 1.0[15]. Pendant le développement de la branche « Django 1.x », le cycle de développement n'a pas de rythme défini mais respecte la convention de nommage de version suivante[16] : • Chaque nouvelle version majeure est numérotée 1.x.0, où x est incrémenté par rapport à la version précédente et apporte de nouvelles fonctionnalités et éventuellement des incompatibilités avec les ver- sions précédentes ; • Des correctifs de sécurité et de bugs sont fournis sous la forme 1.x.y, sans ajouter de nouvelles fonc- tionnalités et se veut rétrocompatible. En juin 2015, à la suite d'un sondage et des discussions entre développeurs, une feuille de route est formalisée, avec un rythme de publication facilitant la maintenance des projets et des applications tierces[12]. Une nouvelle version du framework est désormais publiée tous les huit mois, avec une long term support (LTS) tous les trois ver- sions, c'est-à-dire tous les deux ans. Ces versions bénéfi- cient de mises à jour de sécurité pendant une période d'au moins trois ans[17]. La numérotation des versions est par conséquent revue, permettant une maintenance plus aisée pour les utilisateurs du framework : la version suivant une LTS entraînera la suppression des éléments dépréciés de- puis la précédente LTS et commencera un nouveau cycle de version majeure[12],[18]. Ainsi, à partir de Django 2.0, les versions seront 2.1, 2.2 LTS, 3.0, 3.1, 3.2 LTS, etc. Chacune de ces versions est, ou a été, mise à jour du- rant son support, via des micro-releases[21]. Par exemple, la version 1.2 a eu sept mises à jour, corrigeant de nom- breux bugs et failles de sécurité. Ces versions n'ajoutent pas de fonctionnalités et garantissent une compatibilité identique à la version mineure associée (sauf cas particu- liers). 3 Forces et faiblesses de Django 3.1 Les forces • Les vues génériques : il s’agit de vues per- mettant 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 ob- jets organisés par date avec des URL du type (année)/(mois)/(jour)/élément à afficher. Plus d'informations sont disponibles dans la documenta- tion sur les vues génériques. • Le système d'authentification • La création de pages statiques • La documentation : Django possède une très bonne documentation anglaise. (dont un effort de traduc- tion en français de l'API stabilisé[22]) Cette docu- mentation, 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 appa- 3 raissent dans les pages d'erreur 500, en mode dé- bogage. On peut avoir une bonne idée des va- riables d'environnement et du code ayant provo- qué l'exception. Des efforts sont menés pour in- clure d'autres outils comme la barre de débogage de Symfony (Django Debug Toolbar). 3.2 Les faiblesses • L'AJAX : Django en tant que framework ne per- met pas, seul, l'intégration d'AJAX côté client web. Ceci est un choix de l'équipe de dévelop- pement qui préfère laisser à l'utilisateur le choix de la bibliothèque AJAX à combiner avec Djan- go (MooTools, Prototype, MochiKit (en), jQuery, dojo, ext, etc.)[23]. • Migrations : Avant la version 1.7[24], il n'y avait pas d'outil intégré au framework pour gérer les mi- grations lors des modifications des modèles. Mais des applications Django permettaient de pallier ce manque, notamment South. 4 Communauté Plusieurs organisations gravitent autour du framework afin d'aider les utilisateurs à prendre en main le frame- work. Il existe notamment les DjangoCon, événement composé de conférences et d'ateliers autour du frame- work, mais également des associations afin d'attirer les personnes rarement impliquées dans l'informatique. C'est le cas de DjangoGirls, qui invite les femmes à venir s’ini- tier à Django et au Python de manière générale. 4.1 DjangoCon Des conférences sont tenues tous les ans pour les dévelop- peurs et utilisateurs de Django, appelées “DjangoCon”. Des événements distincts ont lieu aux États-Unis et en Europe. Ces événements sont composés de plusieurs par- ties : • les conférences : pendant deux à trois jours, des bé- névoles uploads/Litterature/django-framework.pdf
Documents similaires










-
26
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Jan 24, 2021
- Catégorie Literature / Litté...
- Langue French
- Taille du fichier 0.2698MB