Le petit framework ASGI qui brille.
Documentation : https://www.starlette.io
Code source : https://github.com/encode/starlette
Starlette est un framework/boîte à outils ASGI léger, idéal pour créer des services Web asynchrones en Python.
Il est prêt pour la production et vous offre les éléments suivants :
httpx
.asyncio
et trio
.$ pip install starlette
Vous souhaiterez également installer un serveur ASGI, tel que uvicorn, daphne ou hypercorn.
$ pip install uvicorn
from starlette . applications import Starlette
from starlette . responses import JSONResponse
from starlette . routing import Route
async def homepage ( request ):
return JSONResponse ({ 'hello' : 'world' })
routes = [
Route ( "/" , endpoint = homepage )
]
app = Starlette ( debug = True , routes = routes )
Exécutez ensuite l'application en utilisant Uvicorn :
$ uvicorn example:app
Pour un exemple plus complet, voir encode/starlette-example.
Starlette ne nécessite que anyio
et les éléments suivants sont facultatifs :
httpx
- Obligatoire si vous souhaitez utiliser TestClient
.jinja2
- Obligatoire si vous souhaitez utiliser Jinja2Templates
.python-multipart
- Obligatoire si vous souhaitez prendre en charge l'analyse de formulaire, avec request.form()
.itsdangerous
- Requis pour la prise en charge SessionMiddleware
.pyyaml
- Requis pour la prise en charge SchemaGenerator
. Vous pouvez installer tout cela avec pip install starlette[full]
.
Starlette est conçu pour être utilisé soit comme framework complet, soit comme boîte à outils ASGI. Vous pouvez utiliser n'importe lequel de ses composants indépendamment.
from starlette . responses import PlainTextResponse
async def app ( scope , receive , send ):
assert scope [ 'type' ] == 'http'
response = PlainTextResponse ( 'Hello, world!' )
await response ( scope , receive , send )
Exécutez l'application app
dans example.py
:
$ uvicorn example:app
INFO: Started server process [11509]
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
Exécutez uvicorn avec --reload
pour activer le rechargement automatique lors des modifications de code.
La modularité sur laquelle Starlette est conçue favorise la création de composants réutilisables qui peuvent être partagés entre n'importe quel framework ASGI. Cela devrait permettre un écosystème de middleware partagé et d’applications montables.
La séparation claire des API signifie également qu'il est plus facile de comprendre chaque composant isolément.
Starlette est un code sous licence BSD.
Conçu et fabriqué avec soin.
— ️ —