コンテンツにスキップ

アプリケーション

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 で利用可能です。