quart.blueprints 模块#

class quart.blueprints.Blueprint(*args: Any, **kwargs: Any)#

Bases: Blueprint

蓝图是应用程序属性的集合。

应用程序属性包括路由、错误处理程序以及请求前后的函数。它有助于生成模块化代码,因为它允许在蓝图中定义属性,从而推迟将这些属性添加到应用程序的操作。

add_websocket(rule: str, endpoint: str | None = None, view_func: WebsocketCallable | None = None, **options: t.Any) None#

在应用程序中添加 websocket URL 规则。

这旨在直接在应用程序上使用。示例用法,

def websocket_route():
    ...

app.add_websocket('/', websocket_route)
参数:
  • rule – 要路由的路径,应以 / 开头。

  • endpoint – 可选的端点名称,如果不存在,则使用函数名称。

  • view_func – 返回响应的可调用对象。

  • defaults

    要自动提供的变量字典,用于为路由提供更简单的默认路径,例如,允许使用 /book 而不是 /book/0

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

  • host – 此路由的完整主机名(应包含子域,如果需要) - 不能与子域一起使用。

  • subdomain – 此特定路由的子域。

  • strict_slashes – 严格匹配路径中存在的尾部斜杠。将重定向叶节点(无斜杠)到分支(有斜杠)。

after_app_serving(func: T_after_serving) T_after_serving#

在应用程序中添加一个服务后函数。

这旨在用作装饰器,并且具有与 after_serving() 相同的参数。示例用法,

blueprint = Blueprint(__name__)
@blueprint.after_app_serving
def after():
    ...
after_app_websocket(func: T_after_websocket) T_after_websocket#

在应用程序中添加一个 websocket 后函数。

这旨在用作装饰器,并且具有与 after_websocket() 相同的参数。它适用于注册此蓝图的应用程序的所有请求。示例用法,

blueprint = Blueprint(__name__)
@blueprint.after_app_websocket
def after():
    ...
after_websocket(func: T_after_websocket) T_after_websocket#

添加一个 websocket 后函数。

这旨在用作装饰器,如果用于装饰同步函数,则该函数将被包装在 run_sync() 中,并在线程执行器中运行(返回包装后的函数)。示例用法,

@app.after_websocket
async def func(response):
    return response
参数:

func – websocket 后函数本身。

before_app_serving(func: T_before_serving) T_before_serving#

在应用程序中添加一个服务前函数。

这旨在用作装饰器,并且具有与 before_serving() 相同的参数。示例用法,

blueprint = Blueprint(__name__)
@blueprint.before_app_serving
def before():
    ...
before_app_websocket(func: T_before_websocket) T_before_websocket#

在应用程序中添加一个 websocket 前函数。

这旨在用作装饰器,并且具有与 before_websocket() 相同的参数。它适用于注册此蓝图的应用程序的所有请求。示例用法,

blueprint = Blueprint(__name__)
@blueprint.before_app_websocket
def before():
    ...
before_websocket(func: T_before_websocket) T_before_websocket#

添加一个 websocket 前函数。

这旨在用作装饰器,如果用于装饰同步函数,则该函数将被包装在 run_sync() 中,并在线程执行器中运行(返回包装后的函数)。示例用法,

@app.before_websocket
async def func():
    ...
参数:

func – websocket 前函数本身。

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

send_file() 用于确定给定文件路径的 max_age 缓存值(如果未传递)。

默认情况下,这将返回 SEND_FILE_MAX_AGE_DEFAULT,来自 current_app 的配置。这默认为 None,它告诉浏览器使用条件请求而不是定时缓存,这通常更可取。

请注意,这与 Quart 类中的相同方法重复。

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 send_static_file(filename: str) Response#
teardown_app_websocket(func: T_teardown) T_teardown#

向应用程序添加一个拆卸 websocket 函数。

这旨在用作装饰器,并具有与 teardown_websocket() 相同的参数。它适用于注册到此蓝图的应用程序的所有请求。使用示例:

blueprint = Blueprint(__name__)
@blueprint.teardown_app_websocket
def teardown():
    ...
teardown_websocket(func: T_teardown) T_teardown#

添加一个拆卸 websocket 函数。这旨在用作装饰器,如果用于装饰同步函数,则该函数将被包装在 run_sync() 中并在线程执行器中运行(返回包装后的函数)。使用示例:.. code-block:: python

@app.teardown_websocket async def func()

参数:
  • **func** – 拆卸 websocket 函数本身。

  • **name** – 可选的蓝图键名称。

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

向应用程序添加一个 websocket。

这旨在用作装饰器,如果用于装饰同步函数,则该函数将被包装在 run_sync() 中,并在线程执行器中运行(返回包装后的函数)。示例用法,

@app.websocket('/')
async def websocket_route():
    ...
参数:
  • rule – 要路由的路径,应以 / 开头。

  • endpoint – 可选的端点名称,如果不存在,则使用函数名称。

  • defaults

    要自动提供的变量字典,用于为路由提供更简单的默认路径,例如,允许使用 /book 而不是 /book/0

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

  • host – 此路由的完整主机名(应包含子域,如果需要) - 不能与子域一起使用。

  • subdomain – 此特定路由的子域。

  • strict_slashes – 严格匹配路径中存在的尾部斜杠。将重定向叶节点(无斜杠)到分支(有斜杠)。

while_app_serving(func: T_while_serving) T_while_serving#

向应用程序添加一个 while serving 函数。

这旨在用作装饰器,并具有与 while_serving() 相同的参数。使用示例:

@blueprint.while_serving
async def func():
    ...  # Startup
    yield
    ...  # Shutdown