Accueil les sujets Qu'est-ce que Django ? Qu'est-ce que Django ?
Le framework Web Django est un framework gratuit et open source qui peut accélérer le développement d'une application Web créée dans le langage de programmation Python.
Arrière-plan noir et bleu
Qu'est-ce que Django ?

Le framework Web Django est un framework gratuit et open source qui peut accélérer le développement d'une application Web créée dans le langage de programmation Python. 

Django (prononcez « Jango »), du nom du célèbre guitariste de jazz Django Reinhardt, est un framework gratuit open source qui a été rendu public pour la première fois en 2005. Django facilite « le développement rapide et la conception propre et pragmatique ». Le framework Web Django, déployé sur un serveur Web, peut permettre aux développeurs de produire rapidement un front-end Web riche en fonctions, sécurisé et évolutif.

Commencer par le framework Web Django est un moyen plus efficace de créer une application Web que de partir de zéro, ce qui nécessite de créer le back-end, les API, le javascript et les plans du site. Avec le framework Web Django, les développeurs Web peuvent se concentrer sur la création d'une application unique et bénéficier d'une plus grande flexibilité qu'en utilisant un outil de développement Web.

Découvrir le framework Django

Vous avez besoin de plus d'informations pour découvrir Django et son fonctionnement ? Vous souhaitez acquérir une expérience pratique de l'utilisation d'une application Web créée à l'aide du framework Web Django ? IBM propose un tutoriel étape par étape pour l'utilisation des services IBM Cloud, afin de suivre l'activité et de surveiller l'intégrité d'une application Kubernetes Python, écrite à l'aide du framework Web Django et exécutée sur IBM Cloud.

Parmi tous les frameworks Web Python disponibles, pourquoi choisir le framework Web Django ? Ce n'est peut-être pas le plus facile à utiliser et ce n'est certainement pas le plus récent. Néanmoins, le framework Web Django peut être la solution idéale lorsque vous créez une application Web impliquant des scripts intersites et devant gérer un grand nombre d'utilisateurs ou un ensemble complexe de fonctionnalités, telles que la connectivité API ou l'authentification des utilisateurs. D'après le nombre de projets sur GitHub, il est également très utilisé.

Toute personne maîtrisant le langage de programmation Python et sa syntaxe devrait être en mesure de lancer un projet utilisant le framework Web Django pour créer une  application Web. (Remarque : si la majeure partie de Django est du Python, les applications contributives admin et gis contiennent du code JavaScript.) Toutefois, les développeurs Django de niveau intermédiaire à avancé peuvent mieux tirer parti des modèles Django, qui sont des fonctions plus sophistiquées.

Empaquetage des fonctions essentielles

Le framework Web Django est utilisé depuis plus de dix ans et a été testé et amélioré en profondeur par une communauté très active. Il a même une organisation à but non lucratif : la Django software foundation promeut, soutient et fait progresser le framework Web Django. La plus grande force de Django est son large éventail de fonctions. Avec plus de 10 000 packages Django, le framework couvre pratiquement tout ce dont vous avez besoin pour une application Web. Les packages comprennent des API, des systèmes de gestion de contenu, l'authentification des utilisateurs, la validation des formulaires et la protection CAPTCHA.

La base d'utilisateurs du framework Web Django est solidaire et dévouée, pleine de développeurs Django talentueux qui offrent leur temps et leur expertise pour développer, améliorer et corriger la base logicielle Django. Votre application peut bénéficier de cet engagement en exploitant les packages bien conçus mis à la disposition de toute personne travaillant avec Django.

Avantages

Rendre la gestion des bases de données plus proche de Python

Le lancement d'un projet Django vous permet de créer l'ensemble du modèle de données de votre application en Python sans avoir besoin d'utiliser SQL. À l'aide d'un associateur objet-relationnel (ORM), Django convertit la structure traditionnelle des bases de données en classes Python pour faciliter le travail dans un environnement entièrement Python. Django-MySQL prend en charge le type de données JSON et les fonctions associées.

Dans Django, vos tables de base de données deviennent des classes Python. Les applications Web accèdent aux données et les gèrent par le biais de modèles Django. Les zones de la base de données sont simplement converties en attributs de classe. Si la définition des attributs de classe en Python vous est familière, vous pouvez facilement concevoir et gérer une base de données Django.

Le framework Web Django offre un raccourci vers une intégration complète avec la base de données de votre application. Il offre les fonctions CRUD (création, lecture, mise à jour, suppression), HttpResponse et le cross-site scripting, fournit des fonctionnalités de gestion des utilisateurs, fournit des fonctions d'administration de logiciels et plus encore. Vous importez les packages, vous vous connectez à votre base de données, puis vous vous remettez au travail pour développer les parties de votre application qui rendent votre produit unique.

Créer des pages dynamiques avec des modèles

Comme Django est conçu pour être utilisé pour le développement d'applications Web, il a besoin d'un moyen de créer facilement du code HTML dynamique qui affiche les données uniques de votre utilisateur. L'application Django produit ce HTML dynamique à l'aide d'un moteur de création de modèles intégré appelé le langage de modèles Django (DTL).

Un modèle HTML permet aux développeurs Django de combiner des éléments statiques (y compris des éléments de conception tels que des couleurs, des logos ou du texte) avec des données (telles que des noms d'utilisateur ou des emplacements) pour créer une page Web à la volée. Avec le modèle-vue-contrôleur (MVC), si vous souhaitez que votre application accueille un utilisateur par son nom lorsqu'il se connecte, vous pouvez créer un modèle qui affiche le texte statique (« Bienvenue sur le site, X »), puis utiliser un caractère générique dynamique pour afficher automatiquement le prénom de l'utilisateur à partir de votre base de données. Lorsque la page s'affiche, elle combine les éléments dynamiques avec les éléments statiques pour créer une expérience utilisateur homogène.

Renforcer la sécurité

Lorsque l'on répond à la question « Qu'est-ce que Django », il convient de parler des fonctions spéciales que Django offre en matière de sécurité. Les applications Web sont des cibles fréquentes des pirates, en particulier les applications qui stockent les informations de connexion des utilisateurs ou des données financières. Django offre des fonctions permettant de protéger votre application et vos utilisateurs.

L'un des plus grands risques pour les sites qui acceptent des données entrées par l'utilisateur est qu'un utilisateur malveillant y injecte un code qui peut avoir un effet désastreux sur votre système. Pour se protéger contre de telles attaques, les modèles Django échappent automatiquement les caractères HTML courants dans les zones dans lesquels l'utilisateur entre des données. Par exemple, il convertit automatiquement « < » en « <», afin de rendre difficile l'injection de code malveillant dans votre programme. Django protège des injections SQL de la même manière, en réinterprétant les commandes non autorisées, afin que les utilisateurs ne puissent pas introduire leur propre code dans votre base de données.

Les développeurs Web peuvent également compter sur les API Django pour utiliser automatiquement la protection CSRF (cross-site request forgery), afin d'insérer des jetons secrets spécifiques aux utilisateurs dans les requêtes POST. Ainsi, les développeurs Web peuvent empêcher les utilisateurs malveillants de dupliquer d'autres requêtes POST pour se faire passer pour des utilisateurs autorisés.

La protection de Django va au-delà de ses fonctions de sécurité explicites : les efforts de sécurité sont renforcés par la grande expérience et l'expertise de la base d'utilisateurs Django. Si vous créez l'ensemble de votre application Web à partir de zéro, vous risquez d'introduire accidentellement une faille de sécurité dans votre module. Les packages Django sont largement utilisés, open source et bien vérifiés par les développeurs Web. Vous pouvez donc être assuré qu'ils protégeront vos données.

Mise à l'échelle de Django

L'un des plus grands défis du développement Web est l'évolutivité. Votre application doit gérer exactement le nombre de connexions actives requises à un moment donné. Si les connexions dépassent votre estimation, vos utilisateurs subiront des décalages et des indisponibilités. Si vous êtes trop prudent dans l'estimation, vous en paierez le coût en bande passante et en serveurs Web non utilisés. Vous avez besoin d'une application qui puisse évoluer à mesure que vos utilisateurs augmentent.

Le framework Web Django facilite la mise à l'échelle. Comme une application Django peut gérer les sessions de vos utilisateurs, vous pouvez ajouter plusieurs instances de votre application et transférer l'expérience de l'utilisateur d'une instance à l'autre sans perdre de données. De nombreux développeurs de projets Django utilisent également un gestionnaire de cache tel que Varnish pour précharger les éléments statiques du site pour les utilisateurs.

Vous devrez configurer soigneusement le gestionnaire de cache pour éviter de mettre accidentellement en cache l'ensemble de votre site, y compris les éléments dynamiques. Un cache mal configuré peut également entraîner le partage de données d'un utilisateur à l'autre. Vous pouvez éviter la mise en cache excessive en utilisant le framework de cache natif (mais limité) de Django en conjonction avec un gestionnaire de cache externe pour libérer des ressources de performance tout en étant sélectif sur ce qui est stocké.

À la question « Qu'est-ce que Django ? », l'une des réponses est qu'il s'agit d'un framework Web hautement évolutif. Quelle est son évolutivité ? Instagram et Disqus font partie des très grands sites qui utilisent Django pour soutenir leurs énormes bases d'utilisateurs.

Solutions connexes
IBM Cloud

IBM Cloud with Red Hat réunit la sécurité, l'évolutivité d'entreprise et l'innovation les plus performantes du marché pour libérer tout le potentiel du cloud et de l'IA.

Explorer IBM Cloud
Ressources Tutoriel : Analyser les journaux et surveiller l'état des applications

Un tutoriel étape par étape à l'intention des développeurs Web utilisant les services IBM Cloud pour suivre l'activité et surveiller l'intégrité d'une application Kubernetes Python, écrite à l'aide de Django et exécutée sur IBM Cloud.

Qu'est-ce que Kubernetes ?

Kubernetes est une plateforme d'orchestration de conteneurs open source qui automatise le déploiement, la gestion et la mise à l'échelle des applications. Découvrez comment Kubernetes permet un développement cloud natif rentable.

Pour aller plus loin

IBM Cloud est une plateforme cloud complète avec plus de 170 produits et services couvrant les données, les conteneurs, l'IA, l'IoT et la blockchain.Utilisez votre infrastructure existante, y compris votre infrastructure périphérique et autres clouds publics, avec les services, les API, les stratégies d'accès, les contrôles de sécurité et la conformité d'IBM Cloud Satellite.

En savoir plus sur IBM Cloud