Stephane Million Editeur

Stephane Million Blog Site

Flask vs Django : comment choisir son framework Python – Skillcrush

Flask vs Django : comment choisir son framework Python – Skillcrush

Dans cet article, nous allons comparer les frameworks les plus populaires utilisés par les développeurs Python dans le cadre de leur pile technologique — Flask vs. Django — et vous aider à choisir entre eux. La réponse courte ? Si vous êtes un débutant relatif à Python ou au codage en général, Django est un excellent point de départ, car il nécessite moins de configuration manuelle. Si vous souhaitez un framework Python moins volumineux et plus flexible et que cela ne vous dérange pas de faire plus pour tout configurer, Flask pourrait être un excellent choix.

Cela dit, si vous débutez dans le développement Web, des termes comme «framework» ou «pile technologique» peuvent ressembler à un autre langage – et il est tout à fait normal d'être un peu intimidé! Définissons donc rapidement les termes avant d'entrer dans les détails. Considérez un framework comme un ensemble de directives qui vous aident à écrire votre code et à créer votre application, et une pile technologique comme un groupe de technologies que vous superposez pour créer des produits (par exemple, votre framework front-end, votre couche d'application de base de données, votre back-end serveur, etc.).

Table des matières

    Ce qu'il faut savoir à propos des frameworks Python et de votre pile technologique Python
  1. Comment choisir un framework: Flask vs. Django
  2. Avantages et inconvénients de Flask
  3. Avantages et inconvénients de Django
  4. Outils Python pour le développement web et la science des données
  5. La technologie vous convient-elle? Répondez à notre quiz de 3 minutes!

    Vous apprendrez:

    Si une carrière dans la technologie vous convient

    Quelles carrières technologiques correspondent à vos points forts De quelles compétences avez-vous besoin pour atteindre vos objectifs

          Qu'est-ce qu'un framework Python et qu'est-ce qu'il a à voir avec une pile technologique ?

          Vous pouvez en savoir plus ici sur ce qu'est Python, comment apprendre Python et ce que vous pouvez faire avec Python 🐍. Mais regardons de plus près ici ce que nous entendons lorsque nous parlons de frameworks Python.

          Pour décomposer avec une analogie, nous pouvons comparer le développement web au système éducatif américain. Lorsque vous concevez une application Web, il est très utile de suivre certaines directives. Cela revient à donner aux enseignants des normes de programme pour savoir ce qu'ils doivent couvrir au cours d'une année scolaire donnée. Sans ces directives, les enseignants de troisième année pourraient ne pas savoir s'il faut d'abord enseigner la soustraction ou la division.

          Avec un cadre pédagogique, tout a un temps et un lieu qui aident les enseignants à instruire correctement leurs élèves à un âge approprié. niveau. De même, le fait d'avoir des directives en matière de développement Web vous aide à savoir où placer votre code, établit comment le code est traité et fournit une structure à suivre pour le développeur. Comme les directives pédagogiques, un framework n'est pas tant un outil qu'un moyen d'organiser votre code et de l'exécuter.

          Pour utiliser un framework comme Django ou Flask avec Python, vous installez le framework sur votre ordinateur en utilisant pip-install – avec Terminal sur Mac ou Invite de commandes sur PC – de la même manière que vous seriez configuré pour écrire dans Ruby on Rails.

          Si un framework est comme un programme d'études ou un système d'apprentissage, alors nous pourrions dire qu'une pile technologique, d'un autre côté, est l'ensemble d'outils que vous utilisez pour que tout cela se produise. Dans notre comparaison, cela revient à utiliser la langue anglaise pour l'enseignement en classe. Aux États-Unis, nous utilisons du papier 8,5 x 11 au lieu du papier A4 utilisé en Europe et en Asie, des scantrons à bulles rondes pour les tests et des classeurs à trois anneaux. De même, les piles technologiques sont les outils dont vous avez besoin dans votre environnement de développement pour faire des choses comme communiquer avec les serveurs et stocker des données.

          Fait amusant! Le terme «pile» est également utilisé dans d'autres contextes. Par exemple, une «pile marketing» comprend tous les différents outils parmi lesquels vous choisissez pour accomplir des tâches marketing et mesurer les résultats, comme le stockage d'informations de contact, l'envoi d'e-mails, la publication de blogs, etc.

          Regardons un exemple de pile Python:

          • Langage de programmation:

            Python5)

          • Base de données pour le stockage des données à long terme: MySQL
          • Serveur Web recevant les requêtes des clients et les transmettant au serveur d'applications:

            Apache

          • Frame de développement back-end:
            Django ou Flacon

          Django et Flask sont deux frameworks bien connus couramment utilisés dans les piles technologiques Python. Le framework Django a été un favori des développeurs, et Flask a gagné en popularité. Bien que Flask et Django puissent tous deux vous aider à déployer des applications Web et des projets de science des données, ce sont deux moyens différents d'atteindre une fin.

          📌

            Connexe: Qu'est-ce que Python?

            (Retour en haut.)


            Comment pour choisir un framework : Flask vs. Django

            Vous ne savez pas comment choisir votre framework ? Examinons de plus près le fonctionnement de Flask et Django.

            Flask est un microframework — un framework qui n'est pas fourni avec des outils ou des bibliothèques. Il manque les commodités d'un framework complet. Par exemple, Flask n'est pas fourni avec des couches d'abstraction de données, ce qui signifie que si vous avez besoin de stocker des données à long terme et que vous souhaitez enregistrer les données dans une base de données telle que MySQL, SQLite ou PostGreSQL, vous devez écrire un vous-même – et écrivez du code SQL pur à lire ou à écrire dans la base de données.




            Voici à quoi ressemble Flask lorsqu'il définit des points de terminaison REST – /api/actors et /api/actors/add sont des URL auxquelles cette application répondra.


            Django est un framework Web open source qui utilise ce que la Fondation Django appelle un modèle Model-Template-View (MTV). Un modèle MTV vous donne un modèle de conception et un modèle pour les meilleures pratiques qui sont pratiques et faciles à modifier. Si vous connaissez Ruby, il peut être utile de savoir que MTV ressemble vaguement au modèle Model-View-Controller (MVC) utilisé par Ruby on Rails, ce qui permet aux débutants de transmettre plus facilement des données au serveur et de naviguer dans les données stockées que Ballon.

            Utilisation de Django pour écrire une vue qui affiche les cinq dernières questions du sondage dans le système.

            Consultez la documentation de Django et la documentation de Flask pour en savoir plus.

            Alors, comment choisir entre Flask contre Django ?

            Le cadre qui vous convient le mieux dépend de votre style de travail. Vous pouvez utiliser Django ou Flask pour créer des applications Web et interagir avec les composants de science des données dans vos applications Web. Ainsi, selon le projet, les deux sont de bonnes options en tant que frameworks au sein de la pile technologique Python.

            Si votre objectif est de créer un produit minimum viable, le système MTV robuste de Django peut vous aider à vous déployer rapidement dans le développement Web. Si vous êtes intéressé par la science des données et que vous n'avez pas besoin des fonctionnalités d'un framework Web complet pour analyser et manipuler vos données, alors Flask pourrait mieux vous convenir.

            Prenons un regard plus attentif.

            (Retour en haut.)

            Avantages et inconvénients de Flask Pros du flacon

              Si vous êtes plutôt du genre bricoleur qui préfèrerait personnaliser votre framework, alors vous pourriez être intéressé à essayer Flask. Flask vous permet d'utiliser n'importe quel type d'extensions et est plus léger que Django. Bien que Django ait intégré des outils et des bibliothèques, vous pouvez décider ce que vous souhaitez utiliser avec Flask.

              Si Django est comme un repas fixe, Flask ressemble plus à une commande à la carte. Au lieu d'être présenté avec un apéritif, un plat principal et un dessert facilement déterminés, Flask vous permet de choisir ce que vous voulez pour chaque partie du repas. C'est comparable à la construction de votre propre système sous Linux par rapport à l'achat d'un système d'exploitation Windows ou Mac préinstallé.

              Flask est livré avec un débogueur, la gestion des requêtes HTTP, la prise en charge des plugins ORM et la prise en charge des cookies. Il dispose de plusieurs modules qui permettent à un développeur Web d'écrire plus facilement des applications sans avoir à se soucier des détails tels que la gestion des protocoles et la gestion des threads – des protocoles de communication de base importants.

              La gestion des protocoles signifie également que vous ne Vous n'avez pas à vous soucier de la structure de vos requêtes HTTP. Avec Flask, vous n'avez pas à vous soucier du formatage des propriétés de vos réponses HTTP et HTTPS. La gestion des threads signifie que lorsque plusieurs utilisateurs viennent sur votre serveur en même temps, vous n'avez pas besoin de vous soucier du fait qu'une requête interagit d'une manière ou d'une autre avec une autre requête.

              Cons flacon

              Si vous avez un projet simple, un microframework peut être approprié car il est rapide et léger – mais si vous avez un projet beaucoup plus complexe, Flask peut ne pas avoir assez d'outils pour vous aider à terminer le projet facilement et rapidement. Vous devrez soit écrire les choses vous-même, soit ajouter d'autres outils en cours de route. C'est comme un ordinateur RaspberryPi dans le sens où il possède toutes les fonctionnalités de base dont vous avez besoin, mais ce n'est pas aussi pratique que d'avoir un PC entièrement construit qui a beaucoup plus de fonctionnalités et de fonctionnalités dès la sortie de la boîte.

              Donc, un inconvénient de Flask peut être de devoir bricoler si vous débutez dans la programmation. Concevoir et installer les différents composants que vous souhaitez dans votre framework Flask signifie investir beaucoup de temps en amont pour faire vos recherches. Si vous êtes débutant ou si vous n'êtes pas intéressé par la configuration manuelle de votre framework, le temps perdu peut ne pas en valoir la peine pour vous.

              📌 Connexe: Comment apprendre Python (un guide complet)

              Dev.to fait apparaître deux autres inconvénients de Flask, qui sont l'évolutivité et la sécurité. Ils soulignent que parce que Flask a une source unique, cela signifie que chaque demande est traitée à tour de rôle, une à la fois. Cela signifie que si vous essayez de répondre à plusieurs demandes, cela prendra plus de temps – et avec moins d'outils à votre disposition, vous devrez peut-être installer plus de modules.

              Installer plus de modules, cependant, peut signifier que c'est moins sécurisé, car vous utilisez des modules tiers. Cela présente un plus grand risque. « Le processus et le développement ne sont plus entre le framework web et le développeur, en raison de l'implication d'autres modules. Cela pourrait augmenter le risque de sécurité si un module malveillant est inclus. »

              (Retour en haut.)

              La technologie vous convient-elle? Répondez à notre quiz de 3 minutes!

              Vous apprendrez:

              Si une carrière dans la technologie vous convient

              Quelles carrières technologiques correspondent à vos points forts Quelles compétences avez-vous ed pour atteindre vos objectifs

                      ) Avantages et inconvénients de Django

              Pros Django

              Django est idéal pour les débutants en développement Web et ceux qui apprennent Python. Le modèle de conception MTV offre un moyen facile d'intégrer les nouveaux développeurs, car tous les composants dont vous avez besoin pour créer un site Web se trouvent au même endroit.

              Si vous essayez de mettre à jour le contenu, stylisez votre page et définissez la logique de votre code, ceux-ci se trouvent tous dans des dossiers distincts au sein du framework, ce qui facilite la recherche des fichiers dont vous avez besoin et facilite la conceptualisation du développement Web.

              Structure de fichier Django de base.

              Parce que Django est un framework full stack, il possède des fonctionnalités et des bibliothèques intégrées pour rendre les choses pratiques. Django utilise son propre mappeur objet-relationnel pour permettre au code de fonctionner sur différentes bases de données et faciliter la migration d'une base de données à une autre, ce qui est idéal si vos projets prennent de l'ampleur au fil du temps.

              Pour en savoir plus développeurs Python intermédiaires et avancés, Django offre également des fonctionnalités de commodité et de qualité de vie. Django vous permet de définir des modèles d'URL et dispose d'une base de données de langage de programmation orienté objet ainsi que de capacités de mappage objet-relationnel.

              Django dispose également d'un cadre de cache qui s'accompagne de plusieurs mécanismes de cache, d'un système d'authentification intégré et d'une fonction d'interface d'administration automatique qui vous permet de personnaliser vos capacités d'édition et de suppression.

              Django contre

            L'un des inconvénients de Django, c'est qu'il est extrêmement obsédé par la façon dont les choses sont fait. Comme le dit notre instructrice principale de développement Skillcrush, Ann Cascarano, « c'est essentiellement la méthode Django ou l'autoroute – alors qu'avec Flask, il y a beaucoup plus de flexibilité. » Mais ce n'est pas toujours un con. « À l'inverse », dit Ann, « le peu d'opinion aide à garder tout le monde sur la même longueur d'onde et applique les règles et les processus. »

            HackerNoon trouve que d'autres inconvénients de Django incluent le fait d'être trop monolithique, les composants déployés ensemble et le fait que les développeurs ont besoin de connaître le système complet pour pouvoir le faire fonctionner correctement. Si quelque chose est « monolithique », cela signifie que lorsque l'application devient plus complexe, le fichier modèle peut devenir très volumineux.

            Parce que tout le code réside dans les mêmes fichiers — tout le code lié au modèle est dans le fichier modèle, tout le code lié à la vue est dans le fichier de vue, etc. — cela peut être difficile à travailler avec de gros fichiers. L'inconvénient des composants déployés ensemble est que vous ne pouvez pas les mettre à jour individuellement, ce qui signifie qu'il faut plus de temps pour mettre à jour le code souhaité.

            (Retour en haut.)

            En plus des frameworks comme Django et Flask, il existe des outils et des bibliothèques Python qui vous faciliteront la vie en tant que développeur Web ou un scientifique des données. Vous trouverez ci-dessous quelques outils à expérimenter au fur et à mesure que vous approfondissez la programmation Python et que vous vous familiarisez avec votre pile technologique.

            Outils et bibliothèques de développement Web Python

            Si vous êtes intéressé par développement web,

              SQLAlchemy peut être un outil utile à explorer davantage. SQLAlchemy est une «boîte à outils Python SQL et un mappeur relationnel d'objets qui donnent aux développeurs d'applications toute la puissance et la flexibilité de SQL» et fournit une «suite complète de modèles de persistance au niveau de l'entreprise bien connus, conçus pour un accès efficace et performant aux bases de données, adapté à un langage de domaine simple et Pythonique. »

              Traduction par Ann: «SQLAlchemy est une boîte à outils SQL open source avec des fonctions spéciales qui vous permettent de configurer facilement votre base de données et d'effectuer toutes sortes d'actions de base de données, sans avoir à écrire de requêtes SQL brutes! (Croyez-moi, c'est une victoire.) Créez votre base de données, écrivez-y, récupérez-la – SQLAlchemy vous soutient ! 😉

              Ce modèle de base de données SQLAlchemy stockera des données pour une forme physique application de suivi.

              Selenium est un framework d'automatisation open source pour les applications Web qui vous permet d'écrire des scripts de test dans de nombreux autres langages de programmation, notamment: Java, C#, Python, PHP, Perl, Ruby et .Rapporter. Avec Selenium, vous pouvez effectuer des tests à partir de n'importe quel navigateur, y compris : Chrome, Firefox, Safari, Opera et Internet Explorer sous Windows, macOS et Linux. Vous pouvez également intégrer Selenium avec des outils comme JUnit et TestNG pour gérer les cas de test et générer des rapports.

                Test de sélénium en action.

                Bibliothèques et outils de science des données Python

                A ne pas confondre avec les ours noirs et blancs qui mangent du bambou,

                  pandas est un outil d'analyse et de manipulation de données open source utilisé en science des données qui propose des structures de données. Pandas vous aidera à explorer, nettoyer et traiter vos données. Le site Web des pandas propose un tutoriel de 10 minutes sur les pandas pour les débutants.




                  Utilisons des pandas pour agréger nos données.

                  NumPy, qui signifie Numerical Python, est une bibliothèque pour Python qui « fournit un objet tableau multidimensionnel, divers objets dérivés (tels que des tableaux masqués et matrices), et un assortiment de routines pour des opérations rapides sur des tableaux, notamment mathématiques, logiques, manipulation de formes, tri, sélection, E/S, transformées de Fourier discrètes, algèbre linéaire de base, opérations statistiques de base, simulation aléatoire et bien plus encore.

                  Traduction par Ann: «NumPy est une bibliothèque d'analyse de données qui vous aide à travailler efficacement avec de grands ensembles de données. NumPy regorge de fonctions conçues sur mesure pour gérer des données complexes. NumPy a une variété de fonctions qui vous permettent d'inspecter un ensemble de données, d'effectuer des calculs et même de combiner des ensembles de données ! 😀

                  Si vous souhaitez en savoir plus sur NumPy, il existe une communauté dynamique avec plusieurs tutoriels sur la façon d'utiliser efficacement NumPy.

                Utilisation de NumPy pour créer un nuage de points avec vos données.

                Psst 👀 Si vous êtes ravi d'apprendre à coder après avoir lu les différents frameworks et outils que vous pouvez utiliser pour déployer des applications Web et manipuler des données, consultez notre programme Break Into Tech, qui vous apprend tout ce que vous devez savoir pour être prêt à travailler en tant que un développeur.

                (Retour en haut.)

                La technologie vous convient-elle? Répondez à notre quiz de 3 minutes!

                Vous apprendrez:

              Si une carrière dans la technologie vous convient

              Quelles carrières technologiques correspondent à vos points forts De quelles compétences avez-vous besoin pour atteindre vos objectifs

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *