
Vision en tunnel
Il se trouve que de nombreuses applications Web sont écrites en Python. Cette niche saine de Python était presque entièrement partagée par deux joueurs sains - Django et Flask. Par conséquent, un grand pourcentage de programmeurs Python sont dédiés à travailler avec ces deux frameworks.
Pour cette raison, de nombreux développeurs Python ont une sorte de vision tunnel - leur approche d'ingénierie est verrouillée entre les deux bibliothèques.
Certains programmeurs ne se limitent pas à Djano et Flask et ajoutent toutes sortes de nouvelles choses à leurs outils de combat. Par exemple, le cadre Sanic à la mode.
Déplacement tectonique: du WSGI à l'ASGI
Pendant la période d'adaptation rapide de Python aux besoins du développement Web, la communauté a développé la norme WSGI - Web Server Gateway Interface. Ce protocole décrivait comment un serveur Web pouvait envoyer des demandes HTTP pour traitement dans une application Python et recevoir des réponses à partir de là.
WSGI a ouvert la voie au développement de nombreux cadres de développement Web et bibliothèques. Ils étaient tous différents dans leur architecture, mais identiques dans leur manière de communiquer avec un serveur Web externe. WSGI a été introduit par la communauté dès 2003, et tous les frameworks Web classiques pour animaux de compagnie (y compris Django et Flask) le supportent toujours.
Les problèmes avec WSGI ont commencé après l'apparition d'outils puissants pour l'exécution asynchrone de code et de coroutines dans le noyau Python. WSGI est ancien et pas du tout concentré sur l'utilisation de nouvelles fonctionnalités de langage. Par conséquent, il y avait un besoin d'un nouveau protocole asynchrone pour communiquer un serveur Web avec des programmes Python. Ainsi, ASGI (Asynchronous Server Gateway Interface) est apparu - un descendant idéologique de WSGI , mais avec des coroutines et l'asynchronie.
Les développeurs des anciens frameworks ont été pris en otage par leur public - ils ne peuvent tout simplement pas prendre et transférer leurs frameworks vers l'approche asynchrone (cela cassera le code et détruira la compatibilité), donc tout développement utilisant ASGI était concentré dans de nouveaux frameworks publiés au cours des deux dernières années, et Django
Starlette - un cadre brillant

Starlette est un nouveau framework agile et cool qui met en œuvre l'approche ASGI. Tout y est axé sur l'asynchronie et les nouvelles puces de la 3ème branche Python.
De plus, Starlette a tout un tas de goodies sérieux.
- GraphQL prêt à l' emploi . Oui, cette nouvelle approche du développement des interactions client-serveur commence à pousser REST et prend sa place dans le monde des frameworks web.
- Les sockets Web sont déjà intégrées et prêtes à l'emploi.
- Ensemble de middleware prêt à l'emploi pour travailler avec l'autorisation / l'authentification, CORS.
- Tâches asynchrones intégrées.
Lotion solide - FastAPI

Certains programmeurs Starlette l' ont beaucoup aimé et ils ont créé une extension pour ce framework - FastAPI
FastAPI est, en fait, une tache sur les classes natives de Starlette , ajoutant un tas de nouvelles fonctionnalités au cadre déjà bon.
- Buns pour la création de services API REST + documentation Swagger pour les méthodes. Starlette se concentre sur le GraphQL branché, FastAPI s'occupe de ceux qui ont vu REST .
- Gadgets pratiques construits sur des info-bulles de types de variables. Par exemple, des validateurs de données intégrés.
- Bel utilitaire pour l'authentification et les processus d'authentification - prise en charge de JWT, OAuth2.
Et un certain nombre de petits équipements et commodités.
Dans le résidu sec
Il est temps de plonger dans le monde d'ASGI et de ses frameworks (sauf si, bien sûr, vous l'avez déjà fait). Les solutions asynchrones sont encore loin de dominer le marché, mais elles progressent activement. Et tout d'abord - en raison de sa vitesse.