Avantages et inconvénients de Django

Remarque perev.: Cet article est principalement destiné à ceux qui choisissent simplement un cadre pour le développement web. Les développeurs Django expérimentés sont peu susceptibles d'apprendre quelque chose de nouveau.



Django est décrit comme «un cadre Web pour les perfectionnistes avec des délais». Il a été créé pour passer des prototypes aux services prêts à l'emploi le plus rapidement possible.


Le cadre aidera à développer une application CRUD clé en main. Django n'a pas à réinventer la roue. Il fonctionne dès la sortie de la boîte et vous permet de vous concentrer sur la logique métier et les produits pour les gens ordinaires.


Avantages de Django


Le principe du "tout compris" ("Piles incluses")


L'expression «tout compris» signifie que la plupart des outils de création d'une application font partie du cadre et ne sont pas fournis dans des bibliothèques distinctes.


Django contient une énorme quantité de fonctionnalités pour résoudre la plupart des tâches de développement Web. Voici quelques-unes des fonctionnalités de haut niveau de Django que vous devrez rechercher séparément si vous préférez un micro framework:


  • ORM
  • Migrations de bases de données
  • Authentification des utilisateurs
  • Panneau d'administration
  • Formulaires

Structure normalisée


Django en tant que framework définit la structure du projet. Il aide les développeurs à comprendre où et comment ajouter de nouvelles fonctionnalités.


Grâce à la même structure pour tous les projets, il est beaucoup plus facile de trouver des solutions toutes faites ou d'obtenir l'aide de la communauté. Un grand nombre de développeurs enthousiastes aideront à faire face à n'importe quelle tâche beaucoup plus rapidement.


Django Apps


Les applications dans Django vous permettent de diviser un projet en plusieurs parties. Les applications sont installées en ajoutant aux paramètres.INSTALLED_APPS . Cette approche facilite l'intégration de solutions clé en main.


Des centaines de modules et d'applications universels accéléreront considérablement le développement. Jetez un œil à leur liste sur djangopackages.org .


Coffre-fort par défaut


Django est sécurisé dès la sortie de l'emballage et comprend des mécanismes pour empêcher les attaques courantes telles que l'injection SQL (XSS) et la falsification de requêtes intersites (CSRF). Vous pouvez en savoir plus à ce sujet dans le manuel de sécurité officiel .


Framework REST pour créer une API


Le framework Django REST, souvent abrégé en «DRF», est une bibliothèque pour la construction d'API. Il a une architecture modulaire et personnalisable qui fonctionne bien pour créer des API simples et complexes.


Dans DRF, les politiques d'authentification et d'autorisation sont disponibles prédéfinies. Il est livré avec des classes de base pour les opérations CRUD et un utilitaire intégré pour tester l'API développée.


Framework API GraphQL


Les grandes API REST nécessitent souvent un grand nombre de demandes pour obtenir toutes les données nécessaires. GraphQL est un langage de requête qui facilite l'échange de données liées. En savoir plus sur les concepts de base de GraphQL dans la documentation officielle .


Graphene-Django facilite l'ajout des fonctionnalités appropriées à votre projet. Les modèles, formulaires, authentifications, politiques d'autorisation et autres fonctionnalités de Django peuvent être utilisés pour créer l'API GraphQL. La bibliothèque est également livrée avec un utilitaire pour tester le résultat.


Inconvénients de Django


Django orm


Django ORM est aujourd'hui nettement inférieur au dernier SQLAlchemy.


Django ORM est basé sur le modèle d'enregistrement actif, qui est pire que le modèle d'unité de travail utilisé dans SQLAlchemy. En pratique, cela se traduit par le fait que dans Django les modèles peuvent se «sauver» à volonté, et les transactions sont désactivées par défaut. Vous pouvez en savoir plus à ce sujet dans l'article «Choses que je n'aime pas à Django» .


Django se développe lentement


Django est un cadre large et monolithique. Cela permet à la communauté de développer des centaines de modules et d'applications génériques, mais ralentit la vitesse de développement de Django lui-même. De plus, le cadre doit prendre en charge la compatibilité descendante, il se développe donc relativement lentement.


Conclusion: dois-je choisir Django?


Bien que Django ORM ne soit pas aussi flexible que SQLAlchemy, et qu'un large écosystème de modules et d'applications réutilisables ralentisse le développement de l'infrastructure, Django devrait évidemment être le premier candidat pour le rôle d'un framework python.


Les frameworks légers alternatifs comme Flask, bien qu'ils vous permettent d'être plus libre que Django dans l'écosystème et la configuration, peuvent nécessiter plus de temps pour rechercher / créer des bibliothèques et des fonctionnalités supplémentaires à long terme.


La stabilité de Django et de la communauté qui l'entoure a atteint une taille inimaginable depuis sa première version. La documentation officielle et les tutoriels sur le framework sont parmi les meilleurs du genre. Et avec chaque nouvelle version de Django, les opportunités continuent de croître.

Source: https://habr.com/ru/post/fr473042/


All Articles