Quart-Flask-Patch 是一个 Quart 扩展,用于修复 Quart 以便与 Flask 扩展一起工作。
项目描述
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-CORS,因为它使用app.make_response,这必须等待。请尝试使用Quart-CORS。
Flask-Restful,因为它将 Quart(app)类作为子类,并使用同步方法覆盖异步方法。请尝试使用Quart-OpenApi或Quart-Schema。
注意事项
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 上寻求帮助。如果您仍然找不到答案,请创建问题。
quart_flask_patch-0.3.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 81dc073698d54ffe1d8c85a556881c13215923a920f9300a02b5005d5447268d |
|
MD5 | 113c59f74cc5773a569a7e716a0aee39 |
|
BLAKE2b-256 | f65ff1e7642a719ccdd8ef40af4529ba5f0984f90b480dfdce87142826801e6e |