アプリケーション
Starletteには、他のすべての機能をうまく統合するアプリケーションクラス Starlette が含まれています。
Starlette. applicationからStarletteをインポート
starletteからPlainTextResponseをインポート
インポートルート、マウント、WebSocketRoute
starlette. staticfilesからStaticFilesをインポート
defホームページ(request):
return PlainTextResponse('こんにちは、世界!')
def user_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を待ちます。
websocket. send_text('こんにちは、websocket!')を待ちます。
websocket. close()を待つ
def start up():
print('準備完了')
ルート=[
ルート('/',ホームページ),
ルート('/user/me', user_me),
ルート('/user/{username}', user),
WebSocketRoute('/ws', websocket_endpoint),
Mount('/static', StaticFiles(directory="static")),
]
app=Starlette(デバッグ=True,ルート=ルート, on_start up=[start up])
アプリケーションのインスタンス化
::: starlette.applications.Starlette :文档字符串
アプリケーションインスタンスに状態を格納します
共通の app.state プロパティを使用して、アプリケーションインスタンスに追加の状態を保存できます。
例えば:
app. state.AD MIN_EMAIL='admin@example.org'
アプリケーションインスタンスへのアクセス
request が利用可能な場合(つまり、エンドポイントとミドルウェア)、アプリケーションは request.app で利用可能です。