跳转到主要内容

Quart-Flask-Patch 是一个 Quart 扩展,用于修复 Quart 以便与 Flask 扩展一起工作。

项目描述

Build Status pypi python license

Quart-Flask-Patch 是一个 Quart 扩展,用于修复 Quart 以便与 Flask 扩展一起工作。

快速入门

Quart-Flask-Patch 必须首先导入到您的主模块中,以便在初始化其他任何代码之前进行修补。例如,如果您想使用 Flask-Login,

import quart_flask_patch

from quart import Quart
import flask_login

app = Quart(__name__)
login_manager = flask_login.LoginManager()
login_manager.init_app(app)

已知可以工作的扩展

以下 Flask 扩展经过测试,已知可以与 quart 一起工作:

已知无法工作的扩展

以下 Flask 扩展已测试,但已知无法与 quart 一起工作:

注意事项

Flask 扩展必须使用全局请求代理变量来访问请求,任何其他访问(例如,通过~quart.local.LocalProxy._get_current_object)将需要异步访问。要启用此功能,请求体必须在处理请求的任何部分之前完全接收,这是纯 Flask 中不存在的一个限制。

尝试在同一运行时使用 Flask 和 Quart,可能不会正常工作,并可能导致意外的错误。

Flask 扩展必须限于创建路由、使用请求和渲染模板。任何其他更高级的功能可能无法工作。

同步函数不会在单独的线程中运行(与 Quart 通常不同),因此可能会阻塞事件循环。

最后,flask_patching 系统还依赖于对 asyncio 的修补,因此其他实现或事件循环策略可能无法正常工作。

贡献

Quart-Flask-Patch 在GitHub上开发。如果您遇到问题或提出功能请求,请创建问题。如果您想贡献修复或功能实现,请(欢迎修正错别字),通过提出合并请求

测试

测试 Quart-Flask-Patch 的最佳方式是使用Tox

$ pip install tox
$ tox

这将检查代码风格并运行测试。

帮助

Quart-Flask-Patch 的文档是开始的好地方,之后可以尝试在Stack Overflow中搜索或在 Gitter 上寻求帮助。如果您仍然找不到答案,请创建问题

由以下支持