10 frameworks Web Python à travailler en 2018

image

D'un traducteur: Aujourd'hui, nous vous proposons la traduction d'un article publié sur SteelKiwi par Hackernoon. Elle est engagée dans le développement de solutions logicielles b2b et b2c, et partage l'expérience acquise dans le processus de travail avec les lecteurs de son blog.

Les frameworks facilitent la vie du développeur en proposant différentes solutions de développement d'applications et de services. Ils automatisent la mise en œuvre de solutions standard, ce qui fait gagner du temps. Ainsi, le développeur se concentre sur l'application, et non sur les tâches de routine, où la pensée créative n'est pas nécessaire.

Skillbox recommande: Le cours pratique de Python Developer from scratch .
Nous vous rappelons: pour tous les lecteurs de «Habr» - une remise de 10 000 roubles lors de l'inscription à un cours Skillbox en utilisant le code promo «Habr».

Cet article parle de dix frameworks Python qui seront utiles à la fois aux développeurs novices et aux professionnels. En 2018, les anciens cadres ont été mis à jour, de nouveaux outils sont apparus qui méritent une attention particulière.

Avant de commencer ...


Lorsque vous commencez à choisir un cadre, appréciez la taille et la complexité de votre projet. Si ce que vous développez est un grand système avec une bonne quantité de fonctions, alors le framework full-stack est ce dont vous avez besoin. Si vous créez une application ou un service relativement petit, vous devez faire attention aux microframes.

Des informations sur certains des cadres sont fournies sur les pages Wikipedia . La décision finale, cependant, vous devez vous baser sur les principes d'analyse de votre propre service ou application déjà exprimés ci-dessus.

Cadres complets


Django



Django est un framework open-source full-stack gratuit. Il vous permet d'ajouter la plupart des fonctions standard dans un seul package au lieu de rechercher des bibliothèques individuelles.

Parmi ceux-ci, il y a ceux qui sont populaires comme l'authentification, le routage d'URL, la migration de schémas de données, etc.

Django utilise ORM pour mapper des objets aux tables de base de données. Le même code fonctionne avec différentes bases de données, donc passer d'une base de données à une autre devient une tâche simple. Les principales bases de données avec lesquelles Django travaille sont PostgreSQL, MySQL, SQLite et Oracle. Vous pouvez en ajouter d'autres, mais pour cela, vous avez besoin de solutions tierces.

Pyramide



Pyramid est un framework open source qui offre au développeur un maximum d'opportunités avec un minimum de temps et de ressources.

La caractéristique la plus intéressante du framework est de travailler avec des applications grandes et petites. Séparément, il convient de souligner des fonctions de pyramide telles que:


Turboears



TurboGears est un framework open-source à pile complète pour les applications Web. Il permet au développeur de créer rapidement des applications Web extensibles pilotées par les données. TurboGears est livré avec des modèles pratiques et un ORM puissant et flexible.

Les fonctions les plus importantes du cadre:

  • prise en charge de diverses bases de données;
  • prise en charge de SQLObject et SQLAlchemy ;
  • validation pour FormEncode ;
  • Pylônes en tant que serveur Web;
  • outils de ligne de commande.

Web2py



Et ceci est un framework full-stack open source évolutif pour Python. Mais avant de commencer à travailler avec, il convient de se rappeler qu'il n'est pas compatible avec Python 3.

Mais Web2py est livré avec son propre IDE: il dispose d'un éditeur de code, d'un débogueur et d'un déploiement en un clic. Parmi d'autres fonctions et outils, il convient de souligner les éléments suivants:

  • absence de besoin d'installation et de configuration;
  • fonctionner sous Windows, Mac, Google App Engine, Amazon EC2 et sur tout hébergement prenant en charge Python 2.5-2.7 ou Java + Python;
  • travailler avec différents protocoles;
  • haut niveau de sécurité des données;
  • traqueur d'erreurs;
  • la compatibilité descendante, qui vous permet de travailler facilement avec des applications et des services basés sur des versions précédentes du framework.

Microframes


Flacon



Il s'agit d'un microframework sous licence BSD. Ses développeurs se sont inspirés du framework Sinatra Ruby. Cela dépend de la boîte à outils Werkzeug WSGI et du modèle Jinja2 .

Flask a une conception modulaire qui lui permet d'être adapté à de nombreuses tâches. Hors de la boîte, le développeur reçoit les fonctions suivantes:

  • serveur et débogueur intégrés;
  • Modèles Jinja2
  • prise en charge des cookies sécurisés;
  • WSGI 1.0;
  • Unicode
  • la possibilité de se connecter à n'importe quel ORM.

Un cadre a été créé pour soutenir les développeurs d'applications Web qui ont eu la possibilité de choisir des extensions à leur convenance.

Bouteille



Un autre microframework qui était à l'origine destiné à créer une API. La bouteille se distingue par la présence d'un seul fichier source. Travailler avec lui ne nécessite pas de «danser avec un tambourin».

Ses fonctionnalités par défaut incluent le routage, les modèles, les utilitaires et l'abstraction WSGI de base:

  • Le routage prend en charge les demandes d'affichage des appels fonctionnels, vous permettant d'obtenir des URL propres et dynamiques.
  • modèles - de nombreux outils utiles qui fonctionnent avec la prise en charge complète de mako, jinja2 et guépard.
  • Utilitaires - accès pratique aux données, téléchargement de fichiers, cookies, en-têtes et autres métadonnées liées à HTTP.
  • serveur de développement HTTP intégré qui prend en charge les fonctions fapws3, bjoern, GAE, CherryPy et tout autre serveur HTTP avec WSGI.

Il s'agit d'une excellente solution pour le prototypage, l'étude de la structure des frameworks Web et la création de petites applications.

Cherrypy



CherryPy est un framework web open source minimaliste. Il offre la possibilité de créer des applications Web Python, ce qui n'est pas différent de la construction de tout autre programme orienté objet.

En fait, cette application Web basée sur CherryPy est une application Python autonome utilisant son propre serveur Web multithread. Les applications CherryPy s'exécutent sur tout système d'exploitation prenant en charge Python (Windows, MacOS, Linux, etc.). Ils peuvent être déployés dans n'importe quel environnement où vous pouvez exécuter une application Python standard. Vous n'avez pas besoin d'Apache pour les applications CherryPy, vous pouvez exécuter l'application CherryPy dans Apache, tout comme dans Lighttpd ou IIS.

CherryPy vous permet d'utiliser tout type de technologie pour le modelage, l'accès aux données, etc. Il peut également traiter des articles, des statistiques, des cookies, télécharger des fichiers et tout ce que les autres frameworks peuvent faire.

Ses capacités distinctives:

  • Lancement simple de plusieurs serveurs HTTP en même temps
  • système de configuration puissant;
  • système de plugin flexible;
  • Fonctionnalités «prêtes à l'emploi»: mise en cache, décodage, sessions, authentification, contenu statique, etc.;
  • Capacité à travailler sous Python 2.7+, Python 3.1+, PyPy, Jython et Android.

Cadres asynchrones


Sanic

Sanic est un framework Python construit sur uvloop et conçu pour traiter rapidement les requêtes HTTP.

Cela fonctionne sur Python 3.5+. Sanic prend en charge les gestionnaires de demandes asynchrones, ce qui le rend compatible avec les fonctions asynchrones / d'attente de Python 3.5. Cela augmente considérablement la vitesse de travail.

Dans la référence lors du traitement de 100 connexions, Sanic a montré la capacité de traiter 33 342 requêtes par seconde.

Tornade



Tornado est à la fois un framework web Python et une bibliothèque réseau asynchrone. Il utilise des E / S réseau non bloquantes et résout le problème C10k (ce qui signifie que s'il est correctement configuré, il peut gérer plus de 10 000 connexions simultanées).

Tout cela en fait un excellent outil pour créer des applications qui nécessitent des performances élevées et fonctionnent avec des dizaines de milliers d'utilisateurs en même temps.

Avantages principaux:

  • Prise en charge de l'authentification utilisateur intégrée
  • services en temps réel;
  • performances de haute qualité;
  • Langage de modèle Web Python
  • Client HTTP non bloquant
  • mise en œuvre de schémas d'authentification et d'autorisation tiers (Google OpenID / OAuth, Facebook Login, Yahoo BBAuth, FriendFeed OpenID / OAuth, Twitter OAuth);
  • prise en charge des traductions et des localisations.

Bonus


Dash



Dash est un framework Python open source utilisé pour créer des applications Web analytiques. C'est particulièrement bon pour les professionnels du Big Data qui ne sont pas très familiers avec le développement Web.

Les applications Dash sont des serveurs Web qui exécutent Flask et échangent des données avec des paquets JSON sur HTTP. Leur interface fournit aux composants les capacités de React.js.

Les applications développées avec Dash sont affichées dans un navigateur Web et peuvent être déployées sur des serveurs. Les applications Dash sont intrinsèquement multiplateformes.

En conclusion, nous pouvons dire qu'il existe vraiment de nombreux frameworks pour les développeurs. Chacun d'eux offre ses propres opportunités uniques. Mais le choix du cadre est une décision importante pour l'avenir de votre propre projet, et vous ne devriez pas vous précipiter là-dedans.

Skillbox recommande:

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


All Articles