Приложения
Starlette включает в себя класс приложений Starlette, который хорошо сочетает в себе все остальные функции.
from Starlette. applications import Starlette
from starlette.responses import PlainTextResponse
from starlette. routing import Route, Mount, WebSocketRoute
from starlette staticfiles import StaticFiles
def homepage (запрос):
return PlainTextResponse ('Hello, world!')
defuser_me (request):
username ="John Doe"
return PlainTextResponse ('Hello, % s!' % username)
def user (request):
username = request.path_params ['username']
return PlainTextResponse ('Hello, % s!' % username)
async def websocket_endpoint (websocket)
websocket. accept ()
await websocket.send_text ('Hello, websocket!')
websocket.close (
def startup ():
print ('Ready to go ')
routes =[
Route ('/', Homepage),
Route ('/user/me ', user_me),
Route ('/user/{username}', user),
WebSocketRoute ('/ws ', websocket_endpoint),
Mount ('/static ', StaticFiles (directory ="static "),
]
app = Starlette(debug=True, routes=routes, on_startup =[startup])
Экземпляры приложений
::: starlette.applications.Starlette :文档字符串
Сохранение состояния в экземпляре приложения
Вы можете использовать универсальное свойство app.state для сохранения любых дополнительных состояний в экземпляре приложения.
Например:
app. state.ADMIN_EMAIL = 'admin @ example.org'
Доступ к экземпляру приложения
Там, где доступны request(т. е. конечные точки и промежуточные компоненты), приложение доступно для request.app.