Django (cadre web) - Django (web framework)

Django
Django logo.svg
Page de destination Django 2.1.png
Auteur(s) original(aux) Adrian Holovaty , Simon Willison
Développeur(s) Fondation Django Software
Première version 21 juillet 2005 ; il y a 16 ans ( 2005-07-21 )
Version stable
3.2.7  Modifiez ceci sur Wikidata / 1er septembre 2021 ; il y a 46 jours ( 1 septembre 2021 )
Dépôt
Écrit en Python
Taille 8,9 Mo
Taper Cadre Web
Licence BSD à 3 clauses
Site Internet www .djangoproject .com Modifiez ceci sur Wikidata

Django ( / æ ŋ ɡ / JANG -goh , parfois stylisée comme django ) est un python à base libre et open-source framework web qui suit le modèle-template-vues (MTV) motif architectural . Il est géré par la Django Software Foundation (DSF), une organisation indépendante établie aux États-Unis en tant qu'organisation à but non lucratif 501(c)(3) .

L'objectif principal de Django est de faciliter la création de sites Web complexes basés sur des bases de données. Le framework met l'accent sur la réutilisabilité et la "pluggabilité" des composants, moins de code, un faible couplage, un développement rapide et le principe de ne pas se répéter . Python est utilisé partout, même pour les paramètres, les fichiers et les modèles de données. Django fournit également une interface administrative facultative de création, de lecture, de mise à jour et de suppression qui est générée dynamiquement par introspection et configurée via des modèles d'administration.

Certains sites bien connus qui utilisent Django incluent Instagram , Mozilla , Disqus , Bitbucket , Nextdoor et Clubhouse .

Histoire

Django a été créé à l'automne 2003, lorsque les programmeurs Web du journal Lawrence Journal-World , Adrian Holovaty et Simon Willison , ont commencé à utiliser Python pour créer des applications. Jacob Kaplan-Moss a été embauché au début du développement de Django peu de temps avant la fin du stage de Simon Willison. Il a été publié publiquement sous licence BSD en juillet 2005. Le framework a été nommé d'après le guitariste Django Reinhardt . Adrian Holovaty est un guitariste de jazz rom et un grand fan de Django Reinhardt.

En juin 2008, il a été annoncé qu'une nouvelle Django Software Foundation (DSF) maintiendrait Django à l'avenir.

Caractéristiques

Composants

Capture d'écran de l'interface d'administration de Django pour modifier un compte utilisateur

Bien qu'il ait sa propre nomenclature, comme le nommage des objets appelables générant les réponses HTTP « vues », le framework Django de base peut être considéré comme une architecture MVC . Il se compose d'un mappeur objet-relationnel (ORM) qui fait la médiation entre les modèles de données (définis comme des classes Python) et une base de données relationnelle (" M odel"), un système de traitement des requêtes HTTP avec un système de template web (" V iew") , et un répartiteur d' URL basé sur des expressions régulières (" C ontroller").

Sont également inclus dans le cadre de base :

  • un serveur Web léger et autonome pour le développement et les tests
  • un système de sérialisation et de validation de formulaire qui peut traduire entre les formulaires HTML et les valeurs adaptées au stockage dans la base de données
  • un système de modèles qui utilise le concept d' héritage emprunté à la programmation orientée objet
  • un cadre de mise en cache qui peut utiliser l'une des nombreuses méthodes de cache
  • support des classes middleware pouvant intervenir à différentes étapes du traitement des requêtes et réaliser des fonctions personnalisées
  • un système de répartiteur interne qui permet aux composants d'une application de communiquer des événements entre eux via des signaux prédéfinis
  • un système d' internationalisation , comprenant des traductions des propres composants de Django dans une variété de langues
  • un système de sérialisation capable de produire et de lire des représentations XML et/ou JSON d'instances de modèle Django
  • un système pour étendre les capacités du moteur de modèle
  • une interface avec le framework de test unitaire intégré de Python

Applications groupées

La distribution principale de Django regroupe également un certain nombre d'applications dans son package "contrib", notamment :

Extensibilité

Le système de configuration de Django permet de brancher du code tiers dans un projet normal, à condition qu'il respecte les conventions de l'application réutilisable. Plus de 2500 packages sont disponibles pour étendre le comportement original du framework, apportant des solutions aux problèmes que l'outil original n'a pas résolus : enregistrement, recherche, fourniture et consommation d' API , CMS , etc.

Cette extensibilité est cependant atténuée par les dépendances des composants internes. Alors que la philosophie Django implique un couplage lâche, les filtres de modèles et les balises supposent une implémentation d'un seul moteur, et les applications groupées auth et admin nécessitent l'utilisation de l' ORM interne . Aucun de ces filtres ou applications groupées n'est obligatoire pour exécuter un projet Django, mais les applications réutilisables ont tendance à en dépendre, encourageant les développeurs à continuer à utiliser la pile officielle afin de profiter pleinement de l'écosystème des applications.

Dispositions des serveurs

Django peut être exécuté en conjonction avec Apache , Nginx en utilisant WSGI , Gunicorn ou Cherokee en utilisant flup (un module Python). Django inclut également la possibilité de lancer un serveur FastCGI , permettant une utilisation derrière n'importe quel serveur Web prenant en charge FastCGI, tel que Lighttpd ou Hiawatha . Il est également possible d'utiliser d'autres serveurs Web compatibles WSGI . Django prend officiellement en charge cinq backends de base de données : PostgreSQL , MySQL , MariaDB , SQLite et Oracle . Microsoft SQL Server peut être utilisé avec django-mssql sur les systèmes d'exploitation Microsoft , tandis que des backends externes similaires existent pour IBM Db2 , SQL Anywhere et Firebird . Il existe un fork nommé django-nonrel, qui prend en charge les bases de données NoSQL , telles que MongoDB et le magasin de données de Google App Engine .

Django peut également être exécuté en conjonction avec Jython sur n'importe quel serveur d'applications Java EE tel que GlassFish ou JBoss . Dans ce cas, django-jython doit être installé afin de fournir des pilotes JDBC pour la connectivité à la base de données, qui peuvent également fournir des fonctionnalités pour compiler Django dans un fichier .war adapté au déploiement.

Google App Engine inclut la prise en charge de Django version 1.xx comme l'un des frameworks fournis.

Historique des versions

L'équipe Django désignera occasionnellement certaines versions comme des versions de "support à long terme" (LTS). Les versions LTS obtiendront des correctifs de sécurité et de perte de données appliqués pendant une période garantie, généralement 3 ans et plus, quel que soit le rythme des versions par la suite.

Version Date Remarques
Ancienne version, plus maintenue : 0,90 16 novembre 2005
Ancienne version, plus maintenue : 0,91 11 janv. 2006 "nouveau-administrateur"
Ancienne version, plus maintenue : 0,95 29 juil. 2006 "suppression magique"
Ancienne version, plus maintenue : 0,96 23 mars 2007 "newforms", outils de test
Ancienne version, plus maintenue : 1,0 3 sept. 2008 Stabilité de l'API, administrateur découplé, unicode
Ancienne version, plus maintenue : 1.1 29 juil. 2009 Agrégats, tests basés sur les transactions
Ancienne version, plus maintenue : 1.2 17 mai 2010 Connexions de base de données multiples, CSRF , validation de modèle
Ancienne version, plus maintenue : 1.3 23 mars 2011 Vues basées sur les classes, fichiers statiques
Ancienne version, plus maintenue : 1.4 LTS 23 mars 2012 Fuseaux horaires, dans les tests de navigateur, modèles d'applications.
Ancienne version, plus maintenue : 1.5 26 février 2013 Prise en charge de Python 3, modèle utilisateur configurable
Ancienne version, plus maintenue : 1.6 6 novembre 2013 Dédié à Malcolm Tredinnick, gestion des transactions db, pooling de connexions.
Ancienne version, plus maintenue : 1.7 2 sept. 2014 Migrations, chargement et configuration des applications.
Ancienne version, plus maintenue : 1.8 LTS 1 avr. 2015 Prise en charge native de plusieurs moteurs de modèles. Support terminé le 1er avril 2018
Ancienne version, plus maintenue : 1.9 1 déc. 2015 Validation automatique du mot de passe. Nouveau style pour l'interface d'administration.
Ancienne version, plus maintenue : 1.10 1 août 2016 Recherche plein texte pour PostgreSQL. Middleware de style nouveau.
Ancienne version, plus maintenue : 1.11 LTS 4 avr. 2017 Dernière version pour supporter Python 2.7. Support terminé le 1er avril 2020
Ancienne version, plus maintenue : 2.0 2 déc. 2017 Première version de Python 3 uniquement, syntaxe de routage d'URL simplifiée, administrateur adapté aux mobiles.
Ancienne version, plus maintenue : 2.1 1 août 2018 Autorisation « afficher » du modèle.
Ancienne version, mais toujours maintenue : 2.2 LTS 1 avr. 2019 Libération de sécurité. Pris en charge jusqu'en avril 2022 au moins
Ancienne version, mais toujours maintenue : 3.0 2 déc. 2019 Prise en charge de l'ASGI
Ancienne version, mais toujours maintenue : 3.1 4 août 2020 Vues asynchrones et middleware
Version stable actuelle : 3.2 LTS 6 avr. 2021 Support étendu jusqu'en avril 2024 au moins
Version future : 4.0 Déc 2021 Support prolongé jusqu'en avril 2023 au moins
Version future : 4.1 août 2022 Support étendu jusqu'en décembre 2023 au moins
Version future : 4.2 LTS avril 2023 Support étendu jusqu'en avril 2026 au moins
Version future : 5.0 décembre 2023 Support étendu jusqu'en avril 2025 au moins
Légende:
Ancienne version
Ancienne version, toujours maintenue
Dernière version
Dernière version d'aperçu
Version future

Outils de développement avec prise en charge de Django

Pour développer un projet Django, aucun outil spécial n'est nécessaire, puisque le code source peut être édité avec n'importe quel éditeur de texte conventionnel . Néanmoins, les éditeurs spécialisés dans la programmation informatique peuvent contribuer à augmenter la productivité du développement, par exemple, avec des fonctionnalités telles que la coloration syntaxique . Étant donné que Django est écrit en Python, les éditeurs de texte qui connaissent la syntaxe Python sont utiles à cet égard.

Les environnements de développement intégrés (IDE) ajoutent des fonctionnalités supplémentaires, telles que le débogage , la refactorisation et les tests unitaires . Comme pour les éditeurs simples, les IDE prenant en charge Python peuvent être bénéfiques. Certains IDE spécialisés sur Python ont en outre une prise en charge intégrée des projets Django, de sorte que l'utilisation d'un tel IDE lors du développement d'un projet Django peut aider à augmenter encore la productivité. Pour une comparaison de ces IDE Python, consultez l'article principal :

Communauté

Il existe une conférence semestrielle pour les développeurs et les utilisateurs de Django, nommée « DjangoCon », qui se tient depuis septembre 2008. DjangoCon se tient chaque année en Europe, en mai ou juin ; tandis qu'un autre se tient aux États-Unis en août ou septembre, dans diverses villes. La DjangoCon 2012 s'est déroulée à Washington, DC, du 3 au 8 septembre. 2013 DjangoCon a eu lieu à Chicago à l'hôtel Hyatt Regency et les Sprints post-conférence ont été organisés au Digital Bootcamp, centre de formation informatique. La DjangoCon US 2014 est revenue à Portland , OR du 30 août au 6 septembre. La DjangoCon US 2015 s'est tenue à Austin , Texas, du 6 au 11 septembre au AT&T Executive Center. La DjangoCon US 2016 s'est tenue à Philadelphie, en Pennsylvanie, à la Wharton School de l'Université de Pennsylvanie du 17 au 22 juillet. La DjangoCon US 2017 s'est tenue à Spokane, WA ; en 2018, la DjangoCon US s'est tenue à San Diego, en Californie. La DjangoCon US 2019 s'est de nouveau déroulée à San Diego, en Californie, du 22 au 27 septembre.

Les mini-conférences Django sont généralement organisées chaque année dans le cadre de la conférence Python australienne « PyCon AU ». Auparavant, ces mini-conférences ont eu lieu à :

  • Hobart , Australie, en juillet 2013,
  • Brisbane , Australie, en août 2014 et 2015,
  • Melbourne , Australie en août 2016 et 2017, et
  • Sydney , Australie, en août 2018 et 2019.

Django a engendré des groupes d'utilisateurs et des rencontres dans le monde entier, le groupe le plus notable est l' organisation Django Girls , qui a commencé en Pologne mais a maintenant organisé des événements dans 91 pays.

Ports vers d'autres langues

Les programmeurs ont porté la conception du moteur de modèle de Django de Python vers d'autres langages, offrant une prise en charge multiplateforme décente. Certaines de ces options sont des ports plus directs ; d'autres, bien qu'inspirés par Django et conservant ses concepts, prennent la liberté de s'écarter du design de Django :

CMS basés sur Django Framework

Django en tant que framework est capable de construire un CMS complet , cependant il existe des projets CMS dédiés qui sont construits sur et étendent le framework Django. Vous trouverez ci-dessous une liste de quelques-uns des CMS les plus populaires basés sur Django :

Voir également

Les références

Bibliographie

Cette liste est une extraction de Current Django Books

Liens externes