Vue d'ensemble

Starlette 0.15, publié le 23 juin 2021, ajoute le support de Trio/AnyIO et un gestionnaire de contexte pour les connexions WebSocket.

Fonctionnalités principales

Support Trio/AnyIO

Starlette peut fonctionner avec anyio comme couche d'abstraction, permettant l'utilisation de Trio en plus d'asyncio.

python
from starlette.applications import Starlette
from starlette.responses import PlainTextResponse
from starlette.routing import Route

async def homepage(request):
    return PlainTextResponse('Hello')

app = Starlette(routes=[
    Route('/', homepage),
])

# Fonctionne avec asyncio ou trio via anyio

Contexte WebSocket

Un gestionnaire de contexte simplifie la gestion du cycle de vie des connexions WebSocket.

python
from starlette.websockets import WebSocket

async def ws_endpoint(websocket: WebSocket):
    await websocket.accept()
    try:
        while True:
            data = await websocket.receive_text()
            await websocket.send_text(f'Echo: {data}')
    except Exception:
        await websocket.close()

Sources