quart.wrappers.request 模块#

class quart.wrappers.request.Body(expected_content_length: int | None, max_content_length: int | None)#

基础类: object

请求体容器。

请求体可以被迭代并逐部分使用(不会导致内存使用量增加),也可以被等待。

async for data in body:
    ...
# or simply
complete = await body

注意:无法迭代数据并随后等待它。

append(data: bytes) None#
clear() None#
set_complete() None#
set_result(data: bytes) None#

便捷方法,主要用于测试。

class quart.wrappers.request.Request(method: str, scheme: str, path: str, query_string: bytes, headers: Headers, root_path: str, http_version: str, scope: HTTPScope, *, max_content_length: int | None = None, body_timeout: int | None = None, send_push_promise: Callable[[str, Headers], Awaitable[None]])#

基础类: BaseRequestWebsocket

此类表示一个请求。

它可以被子类化,并且子类可以通过用你的子类替换 request_class 来优先使用。

body_class#

用于在其中存储主体数据的类。

form_data_parser_class#

可以被覆盖以实现不同的表单数据解析。

body_class#

别名: Body

async close() None#
property data: bytes#
property files: MultiDict#

解析后的文件。

除非请求的 MIME 类型为 enctype="multipart/form-data" 并且方法为 POST、PUT 或 PATCH,否则它将返回一个空的 MultiDict。

property form: MultiDict#

解析后的表单编码数据。

注意,文件数据存在于 files 中。

form_data_parser_class#

别名: FormDataParser

async get_data(cache: bool, as_text: Literal[False], parse_form_data: bool) bytes#
async get_data(cache: bool, as_text: Literal[True], parse_form_data: bool) str
async get_data(cache: bool = True, as_text: bool = False, parse_form_data: bool = False) AnyStr

获取请求体数据。

参数:
  • cache – 如果为 False,则会清除主体数据,导致任何后续调用返回一个空的 AnyStr 并减少内存使用量。

  • as_text – 如果为 True,则数据将作为解码后的字符串返回,否则将返回原始字节。

  • parse_form_data – 首先将数据解析为表单数据,返回任何剩余数据。

async get_json(force: bool = False, silent: bool = False, cache: bool = True) Any#

将正文数据解析为 JSON 并返回。

参数:
  • force – 即使 mimetype 不是 JSON,也强制进行 JSON 解析。

  • silent – 如果解析失败,则不触发错误处理,否则将调用 on_json_loading_failed() 处理错误。

  • cache – 在此请求对象上缓存解析后的 JSON。

property json: Any#
lock_class#

Lock 的别名

make_form_data_parser() FormDataParser#
on_json_loading_failed(error: Exception) Any#

处理 JSON 解析错误。

参数:

error – 解析过程中引发的异常。

返回值:

任何返回的值(如果被覆盖)将被用作所有 get_json 调用的默认值。

async send_push_promise(path: str) None#
property stream: NoReturn#
property values: CombinedMultiDict#