Tutoriel Django : Fonctionnalités, Architecture & Histoire

⚡ Résumé intelligent

Django est un logiciel libre et open source Python Framework web construit sur le modèle MVC (Modèle-Vue-Template), permettant le développement rapide de sites web sécurisés, évolutifs et basés sur des bases de données grâce à des composants réutilisables, une interface d'administration automatique et une conception clé en main.

  • (I.e. Cadre: Django est un langage de haut niveau Python Cadre permettant de créer rapidement des applications web complexes, basées sur des bases de données.
  • ☑️ Archi Le modèle modèle-vue-template (MVT) permet à Django de gérer le contrôleur et de séparer les données, la logique et la présentation.
  • Batteries incluses: L'administration intégrée, l'authentification, les formulaires et l'internationalisation éliminent la plupart des tâches de configuration répétitives.
  • Sécurité : Les protections par défaut bloquent les attaques CSRF, cross-site scripting, SQL injection et clickjacking.
  • 🧪 Échelle: InstagramPinterest, Mozilla et Disqus utilisent Django pour gérer un trafic très important.
  • 🤖 AI: Django propose des modèles d'apprentissage automatique sous forme d'API, et des assistants comme GitHub Copilot accélèrent le développement backend.

Tutoriel Django pour débutants

Django alimente certains des plus grands sites du web tout en gardantping Développement quotidien rapide et organisé. Avant d'explorer ses fonctionnalités, son architecture et son histoire, les sections ci-dessous abordent les bases des frameworks web et ce qui distingue Django.

Résumé du didacticiel Django

Ce tutoriel Django aborde tous les concepts fondamentaux, du niveau débutant au niveau expert. Vous y découvrirez notamment ce qu'est Django, son histoire, ses fonctionnalités, les caractéristiques du framework, ses composants, ses avantages et inconvénients, et bien plus encore.

Avant d'apprendre Django, comprenons :

Qu'est-ce qu'un framework Web ?

Un framework web est une bibliothèque de code qui vous aide à créer un site web, une application web ou un service web dynamique, flexible, évolutif et facile à maintenir. Parmi les différents frameworks web, on peut citer Zend pour PHP. Ruby sur Rails pour Ruby, et d'autres.

Qu'est-ce que Django?

Django est un framework de développement Web pour Python Ce framework web de haut niveau propose des méthodes standardisées pour un développement web rapide et efficace. Son objectif principal est la création de sites web complexes, basés sur des bases de données. Il vous aide à concevoir et à maintenir des applications web de qualité, et vous permet de fluidifier et d'accélérer le processus de développement.

Pourquoi Django ? Principaux avantages de Django

Voici les principaux avantages de Django :

  • Django est facile à installer et à utiliser. Il offre diverses options pour bien démarrer.
  • Elle fournit une interface utilisateur prête à l'emploi pour les activités administratives.
  • Il permet la création de sites web multilingues grâce à son système d'internationalisation intégré.
  • Cela vous permet de répondre rapidement à des demandes de trafic importantes.
  • Django est utilisé pour construire tous types de systèmes de gestion de contenu, de réseaux sociaux, ainsi que des plateformes de calcul scientifique.
  • Django vous aide à fournir des tests d'application de bout en bout.
  • Cela vous permet de documenter votre API avec une sortie HTML.
  • Le framework REST offre une prise en charge étendue de plusieurs protocoles d'authentification.
  • Il propose des politiques d'autorisation et de limitation de débit.
  • Il est largement utilisé pour limiter le débit des requêtes API d’un seul utilisateur.

Histoire de Django

Année Points de repère
2003 Le projet a été lancé par Adrian Holovaty et Simon Willison en tant que projet interne au journal Lawrence Journal-World.
Juillet 2023 Il est sorti en juillet 2005 sous le titre « Django », du nom du guitariste de jazz Django Reinhardt.
Juin 2008 Il a été déclaré qu'un logiciel Django Foundation (DSF) maintiendrait Django.
29 juillet 2009 Django 1.1 a été publié avec des fonctionnalités telles que les agrégats et les tests basés sur les transactions.
17 mai 2010 Django 1.2 a été publié. Cette mise à jour propose des fonctionnalités telles que la gestion de plusieurs bases de données et un système de messagerie, et des améliorations ont été apportées aux sessions et aux cookies.
23 Mar 2011 La version 1.3 a introduit des fonctionnalités telles que les vues basées sur les classes et les fichiers statiques.
23 Mar 2012 La version 1.4 a été lancée avec de nouvelles fonctionnalités telles que les fuseaux horaires et les tests intégrés au navigateur.
26 février 2013 La version 1.5 était fournie avec Python 3 fonctionnalités de support et de modèle utilisateur configurable.
6 novembre 2013 La version 1.6 intégrait des fonctionnalités de gestion des transactions de base de données et de mise en pool des connexions.
2 Sep 2014 La version 1.7 comportait de nouvelles fonctionnalités telles que le chargement d'applications, les migrations et la configuration.
1 avril 2015 Une prise en charge native était assurée pour plusieurs moteurs de modèles.
1 Dec 2015 Dans la version 1.9, une fonction de validation automatique des mots de passe a été introduite.
1 août 2016 Dans la version 1.10, la recherche en texte intégral pour PostgreSQL A été lancé.
4 avril 2017 La version 1.11 est devenue la dernière version prise en charge Python 2.7.
2 Dec 2017 La version 2.0 est devenue la première Python Version limitée à 3 exemplaires.
1 août 2018 La version 2.1 incluait des fonctionnalités de prise en charge de l'autorisation de « visualisation » du modèle.
2021 La prise en charge de Django 3.0 a été supprimée et la prise en charge de Django 3.2 a été ajoutée.

Dans ce tutoriel Django pour débutants, découvrons maintenant les fonctionnalités de Django.

Caractéristiques de Django

Voici les fonctionnalités de Django :

  • Vous aide à définir des modèles pour le URLs dans votre candidature.
  • Simple mais puissant URL système.
  • Système d'authentification intégré.
  • Une base de données utilisant un langage de programmation orienté objet, offrant un stockage et une récupération de données de pointe.
  • L'interface d'administration automatique permet d'ajouter, de modifier et de supprimer des éléments. Vous pouvez personnaliser le panneau d'administration selon vos besoins.
  • Le système de cache est livré avec plusieurs mécanismes de cache.

Dans ce tutoriel sur le framework Django, nous allons maintenant découvrir les caractéristiques de Django.

Caractéristiques de Django

Voici les principales caractéristiques de Django :

  • Couplage lâche – Django vous permet de rendre chaque élément de sa pile indépendant des autres.
  • Less code – Assure un développement efficace.
  • Non répété – Tout devrait être développé au même endroit, au lieu d'être répété.
  • Développement rapide – Django offre un développement d'applications rapide et fiable.
  • Conception cohérente – Django propose un design épuré et facilite le respect des meilleures pratiques de développement web.

Ensuite, dans ce didacticiel Django pour débutants, nous découvrirons l’architecture de Django.

Django Archiconfiguration : MVC et MVT

Vous trouverez ci-dessous une architecture détaillée de Django :

Django Architecture

Django Architecture

Modèle MVC

Lorsqu'on parle d'applications dotées d'une interface utilisateur (web ou de bureau), on évoque généralement l'architecture MVC. Le modèle MVC repose sur trois piliers : Modèle, Vue et Contrôleur.

Le Modèle définit la structure des données et gère les interrogations de la base de données.

Le Consultation définit quelles données doivent être présentées et renvoie une réponse HTTP.

Le Contrôleur Il s'agit de la partie de l'application qui gère l'interaction avec l'utilisateur.

Modèle Django MVC-MVT

Le modèle MVT (Modèle-Vue-Template) est un concept différent du modèle MVC. La principale différence entre ces deux architectures réside dans le fait que Django gère lui-même la partie Contrôleur (le code qui contrôle les interactions entre le Modèle et la Vue). Le modèle est un fichier HTML combiné à un fichier de langage de modèles Django (DTL).

Le diagramme ci-dessous illustre comment tous les composants du modèle MVT interagissent entre eux pour répondre à une requête utilisateur spécifique.

Django Archiconfiguration : MVC et MVT

MVT Architecture

Comme illustré dans le schéma ci-dessus, un utilisateur demande une ressource à Django. Django agit comme un contrôleur et vérifie la disponibilité de la ressource dans le système. URL.

Si la URL Dans le cadre de l'utilisation des cartes, une vue est appelée, qui interagit avec le modèle et le template. Django répond ensuite à l'utilisateur et envoie un template en guise de réponse.

Dans cette série de tutoriels Django pour débutants, nous allons maintenant découvrir les composants de Django.

Composants de Django

Forme

Django dispose d'une puissante bibliothèque de formulaires qui gère le rendu des formulaires au format HTML. La bibliothèque aide à valider les données soumises et à les convertir en Python les types.

Authentification

Il gère les comptes utilisateurs, les groupes, les sessions utilisateur basées sur les cookies, et bien plus encore.

Administrateur

Il lit les métadonnées de vos modèles pour fournir une interface robuste qui peut être utilisée pour gérer le contenu de votre site.

Internationalisation

Django prend en charge la traduction de texte dans différentes langues et la mise en forme locale des dates, des heures, des nombres et des fuseaux horaires.

Sécurité

Django offre des protections contre les attaques suivantes :

  • Falsification de requêtes intersites (CSRF)
  • Script inter-site
  • Injection SQL
  • Clickjacking
  • Exécution de code à distance

Entreprises célèbres utilisant Django

Voici quelques entreprises qui utilisent Django :

  • Bitbucket
  • Disqus
  • NASA
  • PBS (service public de radiodiffusion)
  • Pinterest
  • Instagram
  • Mozilla
  • Washington Post
  • The New York Times
  • Los Angeles Times
  • The Guardian
  • National Geographic
  • Chaîne de découverte

Inconvénients de l'utilisation de Django

Voici quelques inconvénients liés à l'utilisation de Django :

  • Un seul processus ne peut pas traiter plusieurs requêtes simultanément.
  • Django est un outil très monolithique.
  • Les composants sont déployés ensemble, ce qui peut créer de la confusion.
  • Une connaissance complète du système est nécessaire pour travailler avec Django.
  • Cela permet un couplage étroit des composants d'une application web.
  • Vous devez effectuer une longue programmation pour des tâches mineures.

FAQ

Django est avant tout un framework backend, bien qu'il soit souvent qualifié de full-stack car sa couche de templates gère le rendu HTML. Il gère la logique côté serveur, les bases de données, le routage et la sécurité, tandis que les templates se chargent de la présentation dans le navigateur.

Django est un framework complet et tout-en-un, doté d'un ORM intégré, d'un panneau d'administration et d'un système d'authentification. Flask, quant à lui, est un microframework léger et minimaliste qui s'appuie sur des extensions pour ces mêmes fonctionnalités, offrant ainsi aux développeurs un contrôle plus précis.

L'ORM de Django, ou mappeur objet-relationnel, vous permet de définir des tables de base de données comme Python classes et les interroger avec Python Il utilise du code plutôt que du SQL brut. Il prend en charge des bases de données telles que PostgreSQL, MySQL, SQLite et Oracle.

Exécutez la commande `python -m django --version` dans l'invite de commandes, ou ouvrez un fichier `.django.py`. Python Dans le shell, exécutez `import django` suivi de `print(django.get_version())`. Ces deux commandes affichent le numéro de version de Django installé.

Les middlewares sont des fonctions qui traitent globalement chaque requête et réponse. Django utilise des middlewares pour les sessions, l'authentification, la protection CSRF et les en-têtes de sécurité, chacun s'exécutant successivement avant et après l'affichage de votre vue.

Une connaissance pratique de Python La maîtrise des concepts web de base tels que HTTP, HTML et les bases de données est indispensable. Comprendre la programmation orientée objet facilite grandement l'apprentissage des modèles Django et des vues basées sur les classes.

Oui. Django déploie fréquemment des modèles d'apprentissage automatique via des vues ou le framework REST de Django, en exposant les prédictions sous forme de points de terminaison d'API. Un modèle entraîné est chargé une seule fois au démarrage et renvoie les résultats d'inférence aux clients web ou mobiles.

GitHub Copilot et les assistants IA similaires complètent automatiquement les modèles, les vues et les modèles Django. URL Les modèles et les tests permettent de générer automatiquement du code répétitif. Ils accélèrent le développement, mais le code généré doit toujours être vérifié pour des raisons de sécurité et d'exactitude.

Résumez cet article avec :