Ga naar inhoud

Applicaties

Starlette bevat een applicatieklasse,Starlette, die al zijn andere functies netjes integreert.

Starlette.applicaties importeren vanuit Starlette
Vanaf starlette.reacties importeren PlainTextResponse
Van starlette. routing importeren Route, Mount, WebSocketRoute
Importeer StaticFiles vanuit starlette.staticfiles


Def startpagina (aanvraag):
    Retourneert PlainTextResponse ('Hallo, wereld!')

Def user _ me (verzoek):
    Gebruikersnaam = "John Doe"
    Retourneert PlainTextResponse ('Hallo,% s!'% gebruikersnaam)

Def gebruiker (verzoek):
    Gebruikersnaam = aanvraag. path _ params ['gebruikersnaam']
    Retourneert PlainTextResponse ('Hallo,% s!'% gebruikersnaam)

Async voor websocket _ endpoint (websocket):
    Wacht op websocket.accepteer ()
    Wacht op websocket. send _ text ('Hallo, websocket!')
    Wacht op websocket.close ()

Def opstarten ():
    Afdrukken ('Klaar voor vertrek')


Routes = [
    Route ('/', startpagina),
    Route ('/ user / me', user _ me),
    Route ('/ user /{username}', gebruiker),
    WebSocketRoute ('/ ws', websocket _ eindpunt),
    Mount ('/ statisch', StaticFiles (directory = "statisch")),
]

App = Starlette (debug = Waar, routes = routes, bij _ opstarten = [opstarten])

geïnstantieerde toepassing

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

Opslagstatus op de toepassingsinstantie

U kunt het generieke kenmerk app.state gebruiken om een extra status op de toepassingsinstantie op te slaan.

Bijvoorbeeld:

App.state.ADMIN _ EMAIL = 'admin@example.org'

Toegang tot toepassingsinstantie

Waar request beschikbaar is (d.w.z. endpoints en middleware), is de applicatie beschikbaar op request.app.