Aller au contenu

Applications

Starlette contient une classe d'application Starlette qui intègre bien toutes ses autres fonctionnalités.

de starlette. applications import Starlette
from starlette.responses import PlainTextResponse
de starlette.routing Route d'importation, Mont, WebSocketRoute
de starlette. staticfiles import StaticFiles


def homepage (demande):
    return PlainTextResponse ('Hello, world!')

def user_me (demande):
    username ="John Doe"
    return PlainTextResponse ('Hello, % s!'% nom d'utilisateur)

def user (request):
    nom d'utilisateur = request. path_params ['nom d'utilisateur']
    return PlainTextResponse ('Hello, % s!'% nom d'utilisateur)

async def websocket_endpoint (Websocket):
    await websocket. accept ()
    await websocket. send_text ('Hello, websocket!')
    await websocket. close ()

def start-up ()
    print ('prêt à aller ')


Routes =[
    Route ('/', homepage),
    Route ('/user/me', user_me'),
    Route ('/user/{username}', user),
    WebSocketRoute ('/ws', websocket_endpoint),
    Mount ('/static', StaticFiles (directory ="static ")),
]

app = Starlette(débogage =True, routes=routes, on_Startup=[Startup])

Instancier une application

::: starlette.applications.Starlette :文档字符串

Stocker l'état sur une instance d'application

Vous pouvez utiliser la propriété générique app.state pour stocker n'importe quel état supplémentaire sur une instance d'application.

Par exemple:

app.state.ADMIN_EMAIL = 'admin@example.org'

Accès à une instance d'application

Là où request est disponible (c'est-à-dire les terminaux et les middleware), l'application est disponible sur request.app.