quart.app モジュール#

class quart.app.Quart(import_name: str, static_url_path: str | None = None, static_folder: str | None = 'static', static_host: str | None = None, host_matching: bool = False, subdomain_matching: bool = False, template_folder: str | None = 'templates', instance_path: str | None = None, instance_relative_config: bool = False, root_path: str | None = None)#

ベース: App

Webフレームワークのクラスであり、リクエストを処理し、レスポンスを返します。

サービングの観点からの主要なメソッドは handle_request() であり、アプリケーションの観点からは他のすべてのメソッドが不可欠です。

これは多くの方法で拡張でき、ほとんどのメソッドはこれを念頭に置いて設計されています。さらに、属性としてリストされているクラスはすべて置き換えることができます。

aborter_class#

abortヘルパー関数を介してHTTPエラーを発生させるために使用するクラス。

app_ctx_globals_class#

gオブジェクトに使用するクラス

asgi_http_class#

ASGI HTTPプロトコルを処理するために使用するクラス。

タイプ:

type[ASGIHTTPProtocol]

asgi_lifespan_class#

ASGIライフスパンプロトコルを処理するために使用するクラス。

タイプ:

type[ASGILifespanProtocol]

asgi_websocket_class#

ASGI WebSocketプロトコルを処理するために使用するクラス。

タイプ:

type[ASGIWebsocketProtocol]

config_class#

設定に使用するクラス。

env#

アプリが実行されている環境の名前。

event_class#

非同期方式でイベントを通知するために使用するクラス。

debug#

設定DEBUG値のラッパーであり、多くの場所で、Trueの場合、より多くの出力が得られます。設定されていない場合、環境が「development」に設定されているとデバッグモードが有効になります。

jinja_environment#

jinja環境に使用するクラス。

jinja_options#

jinja環境を作成するときに設定するデフォルトオプション。

permanent_session_lifetime#

設定PERMANENT_SESSION_LIFETIME値のラッパー。セッションデータが存続する期間を指定します。

request_class#

リクエストに使用するクラス。

response_class#

レスポンスのユーザーに使用するクラス。

secret_key#

設定SECRET_KEY値のラッパー。セッションに署名するためのアプリシークレット。

session_interface#

セッションインターフェイスとして使用するクラス。

shutdown_event#

このイベントは、アプリがシャットダウンを開始するときに設定され、待機中のタスクがいつ停止するかを知ることができます。

タイプ:

イベント

url_map_class#

ルールをエンドポイントにマッピングするクラス。

url_rule_class#

URLルールに使用するクラス。

websocket_class#

Websocketに使用するクラス。

aborter_class#

Aborter のエイリアス

add_background_task(func: Callable, *args: Any, **kwargs: Any) None#
add_websocket(rule: str, endpoint: str | None = None, view_func: Callable[[...], Response | Response | bytes | str | Mapping[str, Any] | List[Any] | Iterator[bytes] | Iterator[str] | Tuple[Response | Response | bytes | str | Mapping[str, Any] | List[Any] | Iterator[bytes] | Iterator[str], Headers | Mapping[str, str | List[str] | Tuple[str, ...]] | Sequence[Tuple[str, str | List[str] | Tuple[str, ...]]]] | Tuple[Response | Response | bytes | str | Mapping[str, Any] | List[Any] | Iterator[bytes] | Iterator[str], int] | Tuple[Response | Response | bytes | str | Mapping[str, Any] | List[Any] | Iterator[bytes] | Iterator[str], int, Headers | Mapping[str, str | List[str] | Tuple[str, ...]] | Sequence[Tuple[str, str | List[str] | Tuple[str, ...]]]] | None] | Callable[[...], Awaitable[Response | Response | bytes | str | Mapping[str, Any] | List[Any] | Iterator[bytes] | Iterator[str] | Tuple[Response | Response | bytes | str | Mapping[str, Any] | List[Any] | Iterator[bytes] | Iterator[str], Headers | Mapping[str, str | List[str] | Tuple[str, ...]] | Sequence[Tuple[str, str | List[str] | Tuple[str, ...]]]] | Tuple[Response | Response | bytes | str | Mapping[str, Any] | List[Any] | Iterator[bytes] | Iterator[str], int] | Tuple[Response | Response | bytes | str | Mapping[str, Any] | List[Any] | Iterator[bytes] | Iterator[str], int, Headers | Mapping[str, str | List[str] | Tuple[str, ...]] | Sequence[Tuple[str, str | List[str] | Tuple[str, ...]]]] | None]] | None = None, **options: Any) None#

アプリケーションにWebSocket URLルールを追加します。

これは、アプリケーションで直接使用するように設計されています。使用例を以下に示します。

def websocket_route():
    ...

app.add_websocket('/', websocket_route)
パラメーター:
  • rule – ルーティングするパス。 / で開始する必要があります。

  • endpoint – オプションのエンドポイント名。存在しない場合は関数名が使用されます。

  • view_func – レスポンスを返すCallable。

  • defaults

    自動的に提供される変数の辞書。ルートのより単純なデフォルトパスを提供するために使用します。たとえば、/book/0 ではなく /book を許可する場合などです。

    @app.websocket('/book', defaults={'page': 0})
    @app.websocket('/book/<int:page>')
    def book(page):
        ...
    

  • host – このルートの完全なホスト名(サブドメインが必要な場合はサブドメインを含む必要があります)。サブドメインでは使用できません。

  • subdomain – この特定のルートのサブドメイン。

  • strict_slashes – パスに存在する末尾のスラッシュを厳密に一致させます。リーフ(スラッシュなし)をブランチ(スラッシュ付き)にリダイレクトします。

after_serving(func: T_after_serving) T_after_serving#

提供後の関数を追加します。

これにより、提供された関数は、何かが提供された後(最後のバイトが送信された後)に一度だけ呼び出されるようになります。

これはデコレータとして使用するように設計されており、同期関数をデコレートするために使用すると、関数はrun_sync()でラップされ、スレッドエグゼキュータで実行されます(ラップされた関数が返されます)。使用例を以下に示します。

@app.after_serving
async def func():
    ...
パラメーター:

func – 関数自体。

after_websocket(func: T_after_websocket) T_after_websocket#

WebSocket後の関数を追加します。

これはデコレータとして使用するように設計されており、同期関数をデコレートするために使用すると、関数はrun_sync()でラップされ、スレッドエグゼキュータで実行されます(ラップされた関数が返されます)。使用例を以下に示します。

@app.after_websocket
async def func(response):
    return response
パラメーター:

func – WebSocket後の関数自体。

app_context() AppContext#

アプリコンテキストを作成して返します。

これはコンテキスト内で使用するのが最適です。例:

async with app.app_context():
    ...
app_ctx_globals_class#

_AppCtxGlobalsのエイリアス

async asgi_app(scope: HTTPScope | WebsocketScope | LifespanScope, receive: Callable[[], Awaitable[HTTPRequestEvent | HTTPDisconnectEvent | WebsocketConnectEvent | WebsocketReceiveEvent | WebsocketDisconnectEvent | LifespanStartupEvent | LifespanShutdownEvent]], send: Callable[[HTTPResponseStartEvent | HTTPResponseBodyEvent | HTTPResponseTrailersEvent | HTTPServerPushEvent | HTTPEarlyHintEvent | HTTPDisconnectEvent | WebsocketAcceptEvent | WebsocketSendEvent | WebsocketResponseStartEvent | WebsocketResponseBodyEvent | WebsocketCloseEvent | LifespanStartupCompleteEvent | LifespanStartupFailedEvent | LifespanShutdownCompleteEvent | LifespanShutdownFailedEvent], Awaitable[None]]) None#

これはASGI呼び出しを処理し、ミドルウェアでラップできます。

Quartでミドルウェアを使用する場合は、アプリ自体ではなく、このメソッドをラップすることをお勧めします。これは、アプリがこのクラスのインスタンスであることを保証するためです。これにより、quart cliが正しく機能します。この機能を使用するには、次のようにします。

app.asgi_app = middleware(app.asgi_app)
asgi_http_class#

ASGIHTTPConnectionのエイリアス

asgi_lifespan_class#

ASGILifespanのエイリアス

asgi_websocket_class#

ASGIWebsocketConnectionのエイリアス

before_serving(func: T_before_serving) T_before_serving#

サービス開始前の関数を追加します。

これにより、提供された関数は、何かが提供される前(バイトが受信される前)に一度だけ呼び出されるようになります。

これはデコレータとして使用するように設計されており、同期関数をデコレートするために使用すると、関数はrun_sync()でラップされ、スレッドエグゼキュータで実行されます(ラップされた関数が返されます)。使用例を以下に示します。

@app.before_serving
async def func():
    ...
パラメーター:

func – 関数自体。

before_websocket(func: T_before_websocket) T_before_websocket#

WebSocket前の関数を追加します。

これはデコレータとして使用するように設計されており、同期関数をデコレートするために使用すると、関数はrun_sync()でラップされ、スレッドエグゼキュータで実行されます(ラップされた関数が返されます)。使用例を以下に示します。

@app.before_websocket
async def func():
    ...
パラメーター:

func – WebSocket前の関数自体。

config_class#

Configのエイリアス

create_jinja_environment() Environment#

Jinja環境を作成して返します。

これは、jinja_optionsおよび構成設定に基づいて環境を作成します。環境には、デフォルトでQuartグローバルが含まれます。

create_url_adapter(request: BaseRequestWebsocket | None) MapAdapter | None#

URLアダプターを作成して返します。

これは、リクエストが存在する場合はリクエストに基づいてアダプターを作成し、それ以外の場合はアプリの構成に基づいてアダプターを作成します。

default_config: dict[str, t.Any] = {'APPLICATION_ROOT': '/', 'BACKGROUND_TASK_SHUTDOWN_TIMEOUT': 5, 'BODY_TIMEOUT': 60, 'DEBUG': None, 'ENV': None, 'EXPLAIN_TEMPLATE_LOADING': False, 'MAX_CONTENT_LENGTH': 16777216, 'MAX_COOKIE_SIZE': 4093, 'PERMANENT_SESSION_LIFETIME': datetime.timedelta(days=31), 'PREFER_SECURE_URLS': False, 'PRESERVE_CONTEXT_ON_EXCEPTION': None, 'PROPAGATE_EXCEPTIONS': None, 'RESPONSE_TIMEOUT': 60, 'SECRET_KEY': None, 'SEND_FILE_MAX_AGE_DEFAULT': datetime.timedelta(seconds=43200), 'SERVER_NAME': None, 'SESSION_COOKIE_DOMAIN': None, 'SESSION_COOKIE_HTTPONLY': True, 'SESSION_COOKIE_NAME': 'session', 'SESSION_COOKIE_PATH': None, 'SESSION_COOKIE_SAMESITE': None, 'SESSION_COOKIE_SECURE': False, 'SESSION_REFRESH_EACH_REQUEST': True, 'TEMPLATES_AUTO_RELOAD': None, 'TESTING': False, 'TRAP_BAD_REQUEST_ERRORS': None, 'TRAP_HTTP_EXCEPTIONS': False}#
async dispatch_request(request_context: RequestContext | None = None) Response | Response | bytes | str | Mapping[str, Any] | List[Any] | Iterator[bytes] | Iterator[str] | Tuple[Response | Response | bytes | str | Mapping[str, Any] | List[Any] | Iterator[bytes] | Iterator[str], Headers | Mapping[str, str | List[str] | Tuple[str, ...]] | Sequence[Tuple[str, str | List[str] | Tuple[str, ...]]]] | Tuple[Response | Response | bytes | str | Mapping[str, Any] | List[Any] | Iterator[bytes] | Iterator[str], int] | Tuple[Response | Response | bytes | str | Mapping[str, Any] | List[Any] | Iterator[bytes] | Iterator[str], int, Headers | Mapping[str, str | List[str] | Tuple[str, ...]] | Sequence[Tuple[str, str | List[str] | Tuple[str, ...]]]]#

リクエストをビュー関数にディスパッチします。

パラメーター:

request_context – リクエストコンテキスト。Flaskがこの引数を省略するため、オプションです。

async dispatch_websocket(websocket_context: WebsocketContext | None = None) Response | Response | bytes | str | Mapping[str, Any] | List[Any] | Iterator[bytes] | Iterator[str] | Tuple[Response | Response | bytes | str | Mapping[str, Any] | List[Any] | Iterator[bytes] | Iterator[str], Headers | Mapping[str, str | List[str] | Tuple[str, ...]] | Sequence[Tuple[str, str | List[str] | Tuple[str, ...]]]] | Tuple[Response | Response | bytes | str | Mapping[str, Any] | List[Any] | Iterator[bytes] | Iterator[str], int] | Tuple[Response | Response | bytes | str | Mapping[str, Any] | List[Any] | Iterator[bytes] | Iterator[str], int, Headers | Mapping[str, str | List[str] | Tuple[str, ...]] | Sequence[Tuple[str, str | List[str] | Tuple[str, ...]]]] | None#

Websocketをビュー関数にディスパッチします。

パラメーター:

websocket_context – Flaskの規約に合わせるためのオプションのwebsocketコンテキスト。

async do_teardown_appcontext(exc: BaseException | None) None#

アプリ(コンテキスト)をティアダウンし、ティアダウン関数を呼び出します。

async do_teardown_request(exc: BaseException | None, request_context: RequestContext | None = None) None#

リクエストをティアダウンし、ティアダウン関数を呼び出します。

パラメーター:
  • exc – リクエストのティアダウンを引き起こした、処理されなかった例外。

  • request_context – リクエストコンテキスト。Flaskがこの引数を省略するため、オプションです。

async do_teardown_websocket(exc: BaseException | None, websocket_context: WebsocketContext | None = None) None#

Websocketをティアダウンし、ティアダウン関数を呼び出します。

パラメーター:
  • exc – Websocketのティアダウンを引き起こした、処理されなかった例外。

  • websocket_context – Websocketコンテキスト。Flaskがこの引数を省略するため、オプションです。

ensure_async(func: Callable[[P], Awaitable[T]]) Callable[[P], Awaitable[T]]#
ensure_async(func: Callable[[P], T]) Callable[[P], Awaitable[T]]

返されたfuncが非同期であり、funcを呼び出すことを保証します。

バージョン0.11で追加されました。

同期関数がどのように実行されるかを変更したい場合は、オーバーライドしてください。Quart 0.11より前は、executorで同期コードを実行していませんでした。

event_class#

Eventのエイリアス

async finalize_request(result: Response | Response | bytes | str | Mapping[str, Any] | List[Any] | Iterator[bytes] | Iterator[str] | Tuple[Response | Response | bytes | str | Mapping[str, Any] | List[Any] | Iterator[bytes] | Iterator[str], Headers | Mapping[str, str | List[str] | Tuple[str, ...]] | Sequence[Tuple[str, str | List[str] | Tuple[str, ...]]]] | Tuple[Response | Response | bytes | str | Mapping[str, Any] | List[Any] | Iterator[bytes] | Iterator[str], int] | Tuple[Response | Response | bytes | str | Mapping[str, Any] | List[Any] | Iterator[bytes] | Iterator[str], int, Headers | Mapping[str, str | List[str] | Tuple[str, ...]] | Sequence[Tuple[str, str | List[str] | Tuple[str, ...]]]] | HTTPException, request_context: RequestContext | None = None, from_error_handler: bool = False) Response | Response#

ビューのレスポンスの戻り値をレスポンスに変換します。

パラメーター:
  • result – レスポンスに確定させるリクエストの結果。

  • request_context – リクエストコンテキスト。Flaskがこの引数を省略するため、オプションです。

async finalize_websocket(result: Response | Response | bytes | str | Mapping[str, Any] | List[Any] | Iterator[bytes] | Iterator[str] | Tuple[Response | Response | bytes | str | Mapping[str, Any] | List[Any] | Iterator[bytes] | Iterator[str], Headers | Mapping[str, str | List[str] | Tuple[str, ...]] | Sequence[Tuple[str, str | List[str] | Tuple[str, ...]]]] | Tuple[Response | Response | bytes | str | Mapping[str, Any] | List[Any] | Iterator[bytes] | Iterator[str], int] | Tuple[Response | Response | bytes | str | Mapping[str, Any] | List[Any] | Iterator[bytes] | Iterator[str], int, Headers | Mapping[str, str | List[str] | Tuple[str, ...]] | Sequence[Tuple[str, str | List[str] | Tuple[str, ...]]]] | HTTPException, websocket_context: WebsocketContext | None = None, from_error_handler: bool = False) Response | Response | None#

ビューのレスポンスの戻り値をレスポンスに変換します。

パラメーター:
  • result – WebSocket の結果をレスポンスに変換するために最終処理を行う結果。

  • websocket_context – Websocketコンテキスト。Flaskがこの引数を省略するため、オプションです。

async full_dispatch_request(request_context: RequestContext | None = None) Response | Response#

リクエストのディスパッチに前処理と後処理を追加します。

パラメーター:

request_context – リクエストコンテキスト。Flaskがこの引数を省略するため、オプションです。

async full_dispatch_websocket(websocket_context: WebsocketContext | None = None) Response | Response | None#

WebSocket のディスパッチに前処理と後処理を追加します。

パラメーター:

websocket_context – Flaskの規約に合わせるためのオプションのwebsocketコンテキスト。

get_send_file_max_age(filename: str | None) int | None#

send_file() が、ファイルパスが渡されなかった場合に、指定されたファイルの max_age キャッシュ値を決定するために使用します。

デフォルトでは、これはcurrent_appの設定からSEND_FILE_MAX_AGE_DEFAULTを返します。これはデフォルトでNoneとなっており、ブラウザに時間ベースのキャッシュではなく条件付きリクエストを使用するように指示します。これは通常、推奨される方法です。

これはQuartクラスの同じメソッドの複製であることに注意してください。

async handle_background_exception(error: Exception) None#
async handle_exception(error: Exception) Response | Response#

キャッチされなかった例外を処理します。

デフォルトでは、エラーレスポンスを500 Internal Server Errorに切り替えます。

async handle_http_exception(error: HTTPException) HTTPException | Response | Response | bytes | str | Mapping[str, Any] | List[Any] | Iterator[bytes] | Iterator[str] | Tuple[Response | Response | bytes | str | Mapping[str, Any] | List[Any] | Iterator[bytes] | Iterator[str], Headers | Mapping[str, str | List[str] | Tuple[str, ...]] | Sequence[Tuple[str, str | List[str] | Tuple[str, ...]]]] | Tuple[Response | Response | bytes | str | Mapping[str, Any] | List[Any] | Iterator[bytes] | Iterator[str], int] | Tuple[Response | Response | bytes | str | Mapping[str, Any] | List[Any] | Iterator[bytes] | Iterator[str], int, Headers | Mapping[str, str | List[str] | Tuple[str, ...]] | Sequence[Tuple[str, str | List[str] | Tuple[str, ...]]]]#

HTTPExceptionサブクラスのエラーを処理します。

これは、エラーのハンドラーを見つけようとし、失敗した場合はエラーレスポンスにフォールバックします。

async handle_request(request: Request) Response | Response#
async handle_user_exception(error: Exception) HTTPException | Response | Response | bytes | str | Mapping[str, Any] | List[Any] | Iterator[bytes] | Iterator[str] | Tuple[Response | Response | bytes | str | Mapping[str, Any] | List[Any] | Iterator[bytes] | Iterator[str], Headers | Mapping[str, str | List[str] | Tuple[str, ...]] | Sequence[Tuple[str, str | List[str] | Tuple[str, ...]]]] | Tuple[Response | Response | bytes | str | Mapping[str, Any] | List[Any] | Iterator[bytes] | Iterator[str], int] | Tuple[Response | Response | bytes | str | Mapping[str, Any] | List[Any] | Iterator[bytes] | Iterator[str], int, Headers | Mapping[str, str | List[str] | Tuple[str, ...]] | Sequence[Tuple[str, str | List[str] | Tuple[str, ...]]]]#

発生した例外を処理します。

これは、HTTPExceptionhandle_http_exception()に転送し、その後、エラーの処理を試みる必要があります。処理できない場合は、エラーを再発生させる必要があります。

async handle_websocket(websocket: Websocket) Response | Response | None#
async handle_websocket_exception(error: Exception) Response | Response | None#

キャッチされなかった例外を処理します。

デフォルトでは、例外をログに記録してから再発生させます。

jinja_environment#

Environmentのエイリアス

lock_class#

Lockのエイリアス

log_exception(exception_info: tuple[type, BaseException, TracebackType] | tuple[None, None, None]) None#

例外をloggerにログ記録します。

デフォルトでは、これは処理されない例外に対してのみ呼び出されます。

async make_default_options_response() Response#

これはOPTIONSリクエストのデフォルトのルート関数です。

async make_response(result: Response | Response | bytes | str | Mapping[str, Any] | List[Any] | Iterator[bytes] | Iterator[str] | Tuple[Response | Response | bytes | str | Mapping[str, Any] | List[Any] | Iterator[bytes] | Iterator[str], Headers | Mapping[str, str | List[str] | Tuple[str, ...]] | Sequence[Tuple[str, str | List[str] | Tuple[str, ...]]]] | Tuple[Response | Response | bytes | str | Mapping[str, Any] | List[Any] | Iterator[bytes] | Iterator[str], int] | Tuple[Response | Response | bytes | str | Mapping[str, Any] | List[Any] | Iterator[bytes] | Iterator[str], int, Headers | Mapping[str, str | List[str] | Tuple[str, ...]] | Sequence[Tuple[str, str | List[str] | Tuple[str, ...]]]] | HTTPException) Response | Response#

ルートハンドラの実行結果からレスポンスを生成します。

結果自体は以下のいずれかになります。
  • Responseオブジェクト(またはサブクラス)。

  • ResponseValueとヘッダー辞書のタプル。

  • ResponseValue、ステータスコード、およびヘッダー辞書のタプル。

ResponseValueは、Responseオブジェクト(またはサブクラス)またはstrのいずれかです。

make_shell_context() dict#

インタラクティブシェルで使用するためのコンテキストを作成します。

shell_context_processorsを使用して、追加のコンテキストを追加できます。

async open_instance_resource(path: bytes | str | PathLike, mode: str = 'rb') AiofilesContextManager[None, None, AsyncBufferedReader]#

読み込みのためにファイルを開きます。

次のように使用します。

async with await app.open_instance_resource(path) as file_:
    await file_.read()
async open_resource(path: bytes | str | PathLike, mode: str = 'rb') AiofilesContextManager[None, None, AsyncBufferedReader]#

読み込みのためにファイルを開きます。

次のように使用します。

async with await app.open_resource(path) as file_:
    await file_.read()
async postprocess_websocket(response: Response | Response | None, websocket_context: WebsocketContext | None = None) Response | Response#

レスポンスに対して作用するwebsocketを後処理します。

パラメーター:
  • response – websocketが確定した後のレスポンス。

  • websocket_context – Websocketコンテキスト。Flaskがこの引数を省略するため、オプションです。

async preprocess_request(request_context: RequestContext | None = None) Response | Response | bytes | str | Mapping[str, Any] | List[Any] | Iterator[bytes] | Iterator[str] | Tuple[Response | Response | bytes | str | Mapping[str, Any] | List[Any] | Iterator[bytes] | Iterator[str], Headers | Mapping[str, str | List[str] | Tuple[str, ...]] | Sequence[Tuple[str, str | List[str] | Tuple[str, ...]]] | Tuple[Response | Response | bytes | str | Mapping[str, Any] | List[Any] | Iterator[bytes] | Iterator[str], int] | Tuple[Response | Response | bytes | str | Mapping[str, Any] | List[Any] | Iterator[bytes] | Iterator[str], int, Headers | Mapping[str, str | List[str] | Tuple[str, ...]] | Sequence[Tuple[str, str | List[str] | Tuple[str, ...]]]] | None#

リクエストを前処理します。つまり、before_request関数を呼び出します。

パラメーター:

request_context – リクエストコンテキスト。Flaskがこの引数を省略するため、オプションです。

async preprocess_websocket(websocket_context: WebsocketContext | None = None) Response | Response | bytes | str | Mapping[str, Any] | List[Any] | Iterator[bytes] | Iterator[str] | Tuple[Response | Response | bytes | str | Mapping[str, Any] | List[Any] | Iterator[bytes] | Iterator[str], Headers | Mapping[str, str | List[str] | Tuple[str, ...]] | Sequence[Tuple[str, str | List[str] | Tuple[str, ...]]]] | Tuple[Response | Response | bytes | str | Mapping[str, Any] | List[Any] | Iterator[bytes] | Iterator[str], int] | Tuple[Response | Response | bytes | str | Mapping[str, Any] | List[Any] | Iterator[bytes] | Iterator[str], int, Headers | Mapping[str, str | List[str] | Tuple[str, ...]] | Sequence[Tuple[str, str | List[str] | Tuple[str, ...]]]] | None#

websocketを前処理します。つまり、before_websocket関数を呼び出します。

パラメーター:

websocket_context – Websocketコンテキスト。Flaskがこの引数を省略するため、オプションです。

async process_response(response: Response | Response, request_context: RequestContext | None = None) Response | Response#

リクエストの後にレスポンスを処理します。

パラメーター:
  • response – リクエストが完了した後のレスポンス。

  • request_context – リクエストコンテキスト。Flaskがこの引数を省略するため、オプションです。

raise_routing_exception(request: BaseRequestWebsocket) NoReturn#
request_class#

Requestのエイリアス

request_context(request: Request) RequestContext#

リクエストコンテキストを作成して返します。

テスト中はtest_request_context()を使用してください。これはコンテキスト内で使用するのが最適です。例:

async with app.request_context(request):
    ...
パラメーター:

request – コンテキストを構築するためのリクエスト。

response_class#

Response のエイリアス。

run(host: str | None = None, port: int | None = None, debug: bool | None = None, use_reloader: bool = True, loop: AbstractEventLoop | None = None, ca_certs: str | None = None, certfile: str | None = None, keyfile: str | None = None, **kwargs: Any) None#

このアプリケーションを実行します。

これは開発専用に使用するのが最適です。本番環境用サーバーについては、Hypercornを参照してください。

パラメーター:
  • host – リッスンするホスト名。デフォルトではループバックのみです。外部からサーバーがリッスンするようにするには、0.0.0.0 を使用してください。

  • port – リッスンするポート番号。

  • debug – 設定すると、デバッグモードとデバッグ出力を有効(または無効)にします。

  • use_reloader – コードの変更時に自動的にリロードします。

  • loop – サーバーを作成するAsyncioループ。Noneの場合、デフォルトのものが使用されます。指定した場合、ループを閉じてクリーンアップするのは呼び出し側の責任です。

  • ca_certs – SSL CA証明書ファイルへのパス。

  • certfile – SSL証明書ファイルへのパス。

  • keyfile – SSLキーファイルへのパス。

run_task(host: str = '127.0.0.1', port: int = 5000, debug: bool | None = None, ca_certs: str | None = None, certfile: str | None = None, keyfile: str | None = None, shutdown_trigger: Callable[[...], Awaitable[None]] | None = None) Coroutine[None, None, None]#

このアプリケーションを実行すると await されるタスクを返します。

これは開発専用に使用するのが最適です。本番環境用サーバーについては、Hypercornを参照してください。

パラメーター:
  • host – リッスンするホスト名。デフォルトではループバックのみです。外部からサーバーがリッスンするようにするには、0.0.0.0 を使用してください。

  • port – リッスンするポート番号。

  • debug – 設定すると、デバッグモードとデバッグ出力を有効(または無効)にします。

  • ca_certs – SSL CA証明書ファイルへのパス。

  • certfile – SSL証明書ファイルへのパス。

  • keyfile – SSLキーファイルへのパス。

async send_static_file(filename: str) Response#
session_interface = <quart.sessions.SecureCookieSessionInterface object>#
async shutdown() None#
shutdown_event: Event#
async startup() None#
sync_to_async(func: Callable[[P], T]) Callable[[P], Awaitable[T]]#

同期関数funcを実行する非同期関数を返します。

これはこのように使用できます。

result = await app.sync_to_async(func)(*args, **kwargs)

アプリが同期コードを非同期呼び出し可能に変換する方法を変更するには、このメソッドをオーバーライドします。

teardown_websocket(func: T_teardown) T_teardown#

websocketのティアダウン関数を追加します。これはデコレータとして使用するように設計されています。同期関数をデコレートするために使用する場合、関数はrun_sync()でラップされ、スレッドエグゼキュータで実行されます(ラップされた関数が返されます)。使用例を次に示します。 .. code-block:: python

@app.teardown_websocket async def func()

パラメーター:

func – ティアダウンwebsocket関数自体。

test_app() TestAppProtocol#
test_app_class#

TestApp のエイリアス。

test_cli_runner(**kwargs: Any) QuartCliRunner#

CLIテストランナーを作成して返します。

test_cli_runner_class#

QuartCliRunner のエイリアス。

test_client(use_cookies: bool = True, **kwargs: Any) TestClientProtocol#

テストクライアントを作成して返します。

test_client_class#

QuartClient のエイリアス。

test_request_context(path: str, *, method: str = 'GET', headers: dict | ~werkzeug.datastructures.headers.Headers | None = None, query_string: dict | None = None, scheme: str = 'http', send_push_promise: ~typing.Callable[[str, ~werkzeug.datastructures.headers.Headers], ~typing.Awaitable[None]] = <function no_op_push>, data: AnyStr | None = None, form: dict | None = None, json: ~typing.Any = <object object>, root_path: str = '', http_version: str = '1.1', scope_base: dict | None = None, auth: ~werkzeug.datastructures.auth.Authorization | tuple[str, str] | None = None, subdomain: str | None = None) RequestContext#

テスト用にリクエストコンテキストを作成します。

これは、リクエストコンテキスト内のコードをテストするのに最適です。request_context()の簡略化されたラッパーです。withブロック内で使用するのが最適です。例:

async with app.test_request_context("/", method="GET"):
    ...
パラメーター:
  • path – リクエストパス。

  • method – HTTP動詞。

  • headers – リクエストに含めるヘッダー。

  • query_string – 辞書として送信します。または、query_stringはパスから決定できます。

  • scheme – リクエストのスキーム。デフォルトはhttp。

async update_template_context(context: dict) None#

指定されたテンプレートコンテキストを更新します。

これにより、さまざまなテンプレートコンテキストプロセッサーからの追加のコンテキストが追加されます。

パラメーター:

context – 更新するコンテキスト(変更します)。

url_for(endpoint: str, *, _anchor: str | None = None, _external: bool | None = None, _method: str | None = None, _scheme: str | None = None, **values: Any) str#

特定のエンドポイントのURLを返します。

これは、ブラウザーで使用できるURLを作成するために、テンプレートやリダイレクトで最も役立ちます。

パラメーター:
  • endpoint – URLを作成するエンドポイント。.が前に付いている場合、現在のブループリントのエンドポイントをターゲットにします。

  • _anchor – 追加するアンカーテキスト(例:#text)。

  • _external – 外部(アプリ)で使用するための絶対URLを返します。

  • _method – エンドポイントとともに考慮するメソッド。

  • _scheme – 使用する特定のスキーム。

  • values – エンドポイントルールで指定されているように、URLに組み込む値。

url_map_class#

QuartMap のエイリアス。

url_rule_class#

QuartRule のエイリアス。

websocket(rule: str, **options: Any) Callable[[T_websocket], T_websocket]#

アプリケーションにwebsocketを追加します。

これはデコレータとして使用するように設計されており、同期関数をデコレートするために使用すると、関数はrun_sync()でラップされ、スレッドエグゼキュータで実行されます(ラップされた関数が返されます)。使用例を以下に示します。

@app.websocket('/')
async def websocket_route():
    ...
パラメーター:
  • rule – ルーティングするパス。 / で開始する必要があります。

  • endpoint – オプションのエンドポイント名。存在しない場合は関数名が使用されます。

  • defaults

    自動的に提供される変数の辞書。ルートのより単純なデフォルトパスを提供するために使用します。たとえば、/book/0 ではなく /book を許可する場合などです。

    @app.websocket('/book', defaults={'page': 0})
    @app.websocket('/book/<int:page>')
    def book(page):
        ...
    

  • host – このルートの完全なホスト名(サブドメインが必要な場合はサブドメインを含む必要があります)。サブドメインでは使用できません。

  • subdomain – この特定のルートのサブドメイン。

  • strict_slashes – パスに存在する末尾のスラッシュを厳密に一致させます。リーフ(スラッシュなし)をブランチ(スラッシュ付き)にリダイレクトします。

websocket_class#

Websocket のエイリアス。

websocket_context(websocket: Websocket) WebsocketContext#

websocketコンテキストを作成して返します。

テスト中はtest_websocket_context()を使用してください。これはコンテキスト内で使用するのが最適です。例:

async with app.websocket_context(websocket):
    ...
パラメーター:

websocket – コンテキストを構築するwebsocket。

while_serving(func: T_while_serving) T_while_serving#

サービング中のジェネレーター関数を追加します。

これにより、提供されたジェネレーターを起動時に呼び出し、シャットダウン時にもう一度呼び出すことができます。

これはデコレーターとして使用するように設計されています。使用例を以下に示します。

@app.while_serving
async def func():
    ...  # Startup
    yield
    ...  # Shutdown
パラメーター:

func – 関数自体。