9 meilleurs cadres Python pour la création d’applications pour petites entreprises

Le python est à la fois un jouet amusant et un lance-flammes effrayant. Il en va de même avec ce que vous pouvez faire avec Python.


Python est aimé des amateurs, des scientifiques et des architectes.

Il est sacrément facile à démarrer, possède des abstractions d’ordre supérieur et des capacités de métaprogrammation pour construire des systèmes grands et complexes, et dispose de camions chargés de bibliothèques pour faire à peu près n’importe quoi. Bien sûr, il existe des limites en matière de simultanéité et de frappe forte, mais vous pouvez les contourner.

Dans cet article, nous allons jeter un coup d’œil à certains des meilleurs frameworks Python en ce qui concerne la construction d’applications Web grandes et petites.

Django

le Django framework a résisté à l’épreuve du temps le framework web go-to pour la communauté Python. Si vous agressiez un développeur Python pendant son sommeil et le forçiez à créer une application Web sous la menace d’une arme, il atteindrait automatiquement Django comme un Rubyist atteindra Rails.

Et il y a une bonne raison à cela. Django est, comme le dit le slogan, “un cadre Web pour les perfectionnistes avec des délais.” C’est ce qu’on appelle un framework «batteries incluses» (un peu comme la façon dont Python est un langage avec batteries incluses), qui fournit toutes les fonctionnalités courantes hors de la boîte.

Avec ces fonctionnalités intégrées, Django réduit considérablement le temps de développement:

  • Un ORM pratique et agréable, avec des migrations créées et appliquées automatiquement par le framework.
  • Échafaudage pour la génération automatique de panneau d’administration basé sur vos modèles.
  • Prise en charge des cookies, sessions, middleware, modèles, etc..
  • Les fonctionnalités de sécurité telles que la prévention XSS, la prévention CRSF, etc., sont appliquées automatiquement.
  • Fonctionne avec pratiquement toutes les bases de données (il est facile de trouver des adaptateurs là où le support officiel n’existe pas)
  • Prise en charge de première classe des données géographiques et des requêtes spatiales GeoDjango

Et bien plus encore. Il suffit de dire que Django est un framework web complet et convivial.

Django est pour vous?

Absolument oui.

Django est parfaitement adapté à tous les cas d’utilisation, qu’il s’agisse de prototypage rapide ou de planification d’une application d’entreprise. Le seul bord rugueux que vous rencontrerez est la structure du cadre. Puisque Django se met en quatre pour rendre le développement rapide et facile pour vous, il impose sa structure (un concept appelé «convention sur la configuration») au développeur, avec lequel vous ne serez peut-être pas d’accord. Par exemple, si vous voulez remplacer l’ORM Django par quelque chose d’autre (disons, SQL Alchemy), soyez prêt pour les surprises.

Intéressé à devenir développeur full stack avec Django et Python? – Regarde ça fantastique cours en ligne.

Ballon

Alors que Django prend presque toute la part de l’esprit dans le développement Web Python, Ballon est un concurrent sérieux.

Contrairement à Django, Flask est un «micro-framework», ce qui signifie qu’il se concentre sur l’obtention de quelques bonnes choses, et qu’il vous laisse le reste. Ce «reste à vous de décider» peut être une source de frustration ou de plaisir, selon vos objectifs. Pour ceux qui savent ce qu’ils font et veulent créer avec amour leurs applications Web en choisissant les composants de leur choix, Flask est une aubaine.

Flask offre les fonctionnalités suivantes:

  • Routage, modèle, gestion de session et autres fonctionnalités utiles.
  • Prise en charge complète des tests unitaires
  • Une architecture minimale et enfichable
  • Prise en charge REST de première classe
  • Prise en charge de Blueprints, la conception unique de Flask pour les petites applications Web
  • Choisissez vos packages pour ORM, migrations, etc..
  • Structure d’application flexible – placez vos fichiers là où ils vous conviennent le mieux
  • Service de fichiers statiques
  • Conforme WGSI

Flask est pour vous?

Comme déjà dit, Flask est un framework web minimal, avec tout divisé en composants individuels que vous pouvez échanger. Si vous êtes pressé de construire un prototype, vous passerez beaucoup de temps à prendre des décisions triviales sur la base de données, la structure des dossiers, le routage, etc., qui peuvent s’avérer contre-productifs. Flask fonctionne mieux lorsque vous êtes sur un projet sérieux et stable de moyenne à grande échelle, en particulier les API REST.

Bouteille

Si vous pensiez que l’approche de Flask n’était pas assez minimale et que vous aimeriez toujours plus de contrôle, dites bonjour à Bouteille.

La bouteille se détache encore plus, au point où la seule dépendance est la bibliothèque standard Python. Cela signifie qu’aucun pip ne doit installer ceci ou installer de pip cela, bien que vous en ayez probablement besoin avant longtemps. Voici pourquoi la bouteille se démarque pour certaines personnes:

  • Déploiement sur un seul fichier. Oui, toute votre application vit dans un seul fichier «.py».
  • Pas de dépendances externes. Si la bonne version de Python est installée, vous êtes prêt à partir.
  • Fournit son moteur de template, qui peut être échangé avec Jinja2, Mako ou Cheetah.
  • Prise en charge des formulaires, des en-têtes, des cookies et des téléchargements de fichiers.
  • Serveur Web intégré, qui peut être facilement remplacé.

La bouteille est-elle pour vous?

Si vous créez une très petite application (disons, moins de 500 lignes de code) sans exigences particulières, Bouteille pourrait avoir beaucoup de sens pour vous. C’est une approche complète et sans fioritures pour créer des applications Web, mais dans la pratique, vous constaterez que vous êtes plus gêné que aidé par Bottle. La raison en est que le monde réel est en constante évolution et avant que vous ne le sachiez. De nouvelles exigences vous seront imposées. À ce stade, tout mettre dans un seul fichier deviendrait une corvée.

De plus, si vous pensez que la bouteille et le flacon sont presque semblables, vous avez raison. Propositions de fusion les deux remontent à 2012, et même Armin, le créateur de Flask, est d’accord avec cela. Cependant, Marcel, le créateur de Bottle, maintient une stricte distinction idéologique en raison de l’approche à fichier unique et insiste pour que les deux restent séparés..

Zope

Zope est compliqué à expliquer, mais je vais essayer. Oui, c’est une infrastructure Web qui peut être utilisée pour créer des applications grandes ou petites, mais ce n’est pas tout. Zope est plus une plateforme qui se compose d’outils (frameworks Web inclus) créés selon la philosophie Zope et maintenus par Zope Corporation.

Zope possède plusieurs composants et fonctionnalités intéressants adaptés au développement d’applications d’entreprise:

  • Une architecture d’enregistrement et de découverte de composants pour configurer une grande application.
  • ZODB – (la seule) base de données d’objets pour Python pour le stockage natif d’objets.
  • Cadre et normes à part entière pour les systèmes de gestion de contenu
  • Un ensemble de cadres d’application Web – le canonique est toujours appelé Zope, bien que plusieurs nouveaux cadres (comme Grok) aient été construits dessus.
  • Normes strictes pour le développement, la publication et la maintenance de logiciels.

Zope est pour toi?

Si vous recherchez un environnement hautement structuré pour créer de très grandes applications, Zope est bon. Cela dit, vous rencontrerez également votre juste part de problèmes. Alors que Zope continue d’évoluer, la communauté est vraiment petite, dans la mesure où de nombreux développeurs Python n’en ont même pas entendu parler. Il est difficile de trouver des didacticiels et une documentation complète, alors soyez prêt à faire beaucoup de recherches (bien que la communauté soit vraiment utile!). De plus, les développeurs Python que vous rencontrez peuvent ne pas vouloir apprendre Zope et «diluer» leurs compétences.

TurboGears

TurboGears est un cadre hautement flexible qui a une architecture véritablement composable. Il s’agit d’un cadre qui évolue en fonction de vos besoins, et vous pouvez l’utiliser pour créer une application à fichier unique ou un géant multi-locataire.

TurboGears a des fonctionnalités élégantes, dont certaines ne sont pas présentes dans les frameworks populaires (comme Django) ou sont difficiles à construire:

  • Prise en charge de première classe pour plusieurs bases de données
  • Transactions multi-bases de données
  • Hautement modulaire – commencez avec un seul fichier et évoluez autant que vous le souhaitez
  • Un ORM puissant (SQLAlchemy, qui est plus mature et capable que l’ORM de Django)
  • Architecture enfichable basée sur la spécification WSGI
  • Prise en charge intégrée du partage de bases de données
  • Une interface axée sur les fonctions par opposition aux hiérarchies orientées objet rigides et profondes.

TurboGears est pour vous?

Si vous voulez vous développer avec bonheur et que vous voulez un framework testé, mature et robuste loin du bruit médiatique de «génial, nouvelle génération» et tout cela, TurboGears est un excellent choix. Il est très respecté dans la communauté et possède une documentation complète et complète. Bien sûr, TurboGears n’a pas d’opinion, ce qui signifie que le temps d’installation et de configuration initiale peut être plus long, mais c’est le cadre idéal pour le développement d’applications d’entreprise.

Web2py

Web2py a commencé comme un projet de loisir et a été lancé en 2007. Ses objectifs sont de rendre le développement Web facile et accessible à tous..

En conséquence, Web2py pousse à l’extrême l’approche zéro dépendance – il n’a aucune exigence, rien à installer et comprend un éditeur Web complet pour le développement, la gestion de la base de données et le déploiement.

Vous pouvez presque le considérer comme Android Studio, qui est plus un environnement complet qu’un simple framework. Quelques fonctionnalités intéressantes de Web2py:

  • Pratiquement aucune courbe d’apprentissage.
  • Noyau minimal (seulement 12 objets), qui peut même être mémorisé!
  • Modèles Pure-Python
  • Protection contre XSS, CSRF et autres attaques
  • Une API agréable et cohérente

Web2py est-il pour vous?

Web2py est un framework stable et amusant, mais il est difficile de le recommander contre d’autres options comme Django, Flask, etc. Il n’y a pratiquement pas de travaux, et l’histoire des tests unitaires n’est pas géniale. Cela dit, vous pourriez profiter de l’API de code et de l’expérience globale qu’offre le framework, surtout si vous créez des API REST.

CherryPy

CherryPy est un autre microframework qui vise à fournir des fonctionnalités de base du cadre et à se libérer rapidement du chemin.

Bien qu’il soit comparable à d’autres microframes comme Flask, CherryPy possède une certaine distinction:

  • Il contient un serveur multi-thread intégré (quelque chose qui reste sur la liste de souhaits de Flask)
  • Le serveur Web (unique) peut héberger plusieurs applications!
  • Servir votre application en tant qu’application WSGI (pour interfacer avec d’autres applications WSGI) ou en tant que serveur HTTP ordinaire (qui fonctionne mieux)
  • Prise en charge de premier ordre pour le profilage et les tests unitaires
  • Fonctionne sur PyPy (pour les vrais accros de performance), Jython et même Android

CherryPy fait tout cela, puis l’habituel que vous attendez d’un framework Web.

CherryPy est pour vous?

Si vous construisez principalement des services RESTful, CherryPy est un concurrent beaucoup plus sérieux que Flask. C’est un framework vieux de dix ans qui a bien mûri et qui convient aussi bien aux petites qu’aux grandes applications.

Sanic

La montée en puissance de Node et de son modèle de programmation asynchrone a laissé de nombreuses communautés derrière, y compris Python. En réponse, une vague de frameworks web asynchrones est apparue sur le radar, Sanic être l’un d’eux.

Sanic est fortement inspiré par Flask, dans la mesure où il a emprunté la ligne de crochet et le plomb de décorateurs de routes, de plans directeurs et d’autres principes fondamentaux. Et ils n’ont pas honte de l’admettre. Ce que Sanic apporte à la table, si vous êtes un fan de Flask, est une véritable E / S non bloquante pour répondre aux niveaux de performance d’une application Node. En d’autres termes, Sanic est Flask avec un support asynchrone / wait!

Par rapport à CherryPy, Sanic a un incroyable avantage en termes de performances (il suffit de penser à la façon dont il se comporterait contre Flask!). Découvrez les résultats suivants testés par DataWeave:

Comme vous pouvez le voir, une fois que le nombre de concurrents commence à dépasser 50 par seconde, CherryPy s’étouffe et génère un taux d’échec élevé.

Sanic est pour vous?

Alors que les performances de Sanic font sauter tout le reste de l’eau, ce n’est peut-être pas le meilleur choix pour votre prochain projet. La raison principale est le manque de bibliothèques asynchrones. La majeure partie des outils et bibliothèques Python existants ont été écrits pour la version CPython à un seul thread, sans prévoyance pour les opérations à accès concurrentiel élevé ou asynchrones. Si, par exemple, votre ORM préféré ne prend pas en charge les opérations asynchrones, tout l’intérêt d’utiliser Sanic est vaincu.

Pour des raisons de maturité et de disponibilité, nous n’examinerons plus de frameworks asynchrones en Python.

Masonite

Je suis tombé sur ce cadre il y a quelque temps et j’ai pensé que c’était un pas dans la bonne direction. Depuis lors, la version 2.0 est sortie, et j’ai l’impression que le moment est enfin venu de donner Masonite un peu d’amour.

Autrement dit, Masonite est la version Python de Laravel (un framework PHP célèbre, au cas où vous ne le saviez pas). Pourquoi est-ce important? C’est important parce que Laravel a été construit sur les principes de Ruby on Rails, et ensemble, ces deux cadres permettent aux développeurs non Ruby de faire l’expérience de la «manière Rails» de faire les choses.

Les développeurs de Laravel (et dans une certaine mesure, Rails) se sentiront comme chez eux et seraient opérationnels en un rien de temps. Lorsque j’ai essayé Masonite (et j’ai soumis un problème ou deux, y compris un bogue!), J’ai été en mesure de créer des API REST avec exactement zéro pensée parce que ma mémoire musculaire Laravel faisait tout.

En tant que framework complet avec piles, Masonite apporte plusieurs choses intéressantes à la table:

  • ORM de style d’enregistrement actif
  • Migrations de bases de données (qui, contrairement à Django, doivent être créées par le développeur)
  • Un puissant conteneur IoC pour l’injection de dépendances
  • Propre CLI (appelée «artisanat») pour l’échafaudage et l’exécution de tâches
  • Support de première classe pour les tests unitaires

Le plus grand «rival» de Masonite est Django, car la communauté fait de son mieux pour commercialiser le framework comme simple, agréable et la prochaine grande chose. Que cela dépassera Django est quelque chose que le temps dira (si vous me demandez, il a un coup décent), mais pour une discussion comparant les deux, voir ici et ici.

La Masonite est-elle pour vous?

La Masonite est encore un bébé par rapport à Django, donc il est impossible de la recommander par rapport à Django. Cela dit, si vous êtes dans la façon de faire des Rails (ou de la manière Laravel), vous apprécieriez ce que Masonite a à offrir. Il est idéal pour construire rapidement des prototypes qui ont besoin de tout ce qui est préconfiguré et facile à changer.

Conclusion

Les infrastructures Web Python ne manquent pas, grandes et petites. Bien que vous puissiez ramasser à peu près n’importe quoi pour un petit projet, une application d’entreprise a des exigences que peu de ces cadres peuvent satisfaire. Si vous me demandez, pour le développement d’entreprise, Django (dans une certaine mesure), Zope et TurboGears sont ce qui me vient à l’esprit. Et même parmi ceux-ci, je suis enclin à TurboGears.

Cela dit, tout architecte digne de ce nom peut prendre un microframework et déployer son architecture. Et c’est à peu près ce qui se passe dans la pratique, ce qui explique le succès de Flask et des idées similaires.

Si vous êtes un débutant, alors ce cours en ligne serait utile d’apprendre Python.

MOTS CLÉS:

  • Python

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map