跳转到主要内容

基于asyncio的Flask。

项目描述

aiolink

Build status codecov

Flask 2.x在asyncio上运行!

Flask 2.0已经发布,支持异步视图,这还有必要吗?是的!Flask对异步处理器的支持非常有限,因为应用程序仍然运行在WSGI网络服务器中,这严重限制了可扩展性。使用aioflask,您将获得真正的ASGI应用程序,在100%异步环境中运行。

警告:目前这是一个实验。完全不适用于生产环境!

快速开始

要使用异步视图函数和其他处理器,请使用包而不是flask

类是flask.Flask的子类,它更改了一些小的内容,以帮助应用程序在asyncio循环下正确运行。特别是,它覆盖了以下应用程序实例的以下方面

  • 路由、请求前、首次请求前、请求后、请求清理、应用上下文清理、错误处理器和CLI命令装饰器接受协程以及常规函数。所有处理器都在asyncio循环中运行,因此当使用常规函数时,必须注意不要阻塞。
  • WSGI可调用入口点被替换为ASGI等价物。
  • run()方法使用uvicorn作为网络服务器。

还有一些更改在Flask类之外

  • flask aiorun命令使用uvicorn网络服务器启动ASGI应用程序。
  • render_template()和render_template_string()函数是异步的,必须等待。
  • Flask应用程序和请求上下文的管理器是异步的。
  • 测试客户端和测试CLI运行器使用协程。

示例

import asyncio
from aioflask import Flask, render_template

app = Flask(__name__)

@app.route('/')
async def index():
    await asyncio.sleep(1)
    return await render_template('index.html')

项目详情


下载文件

下载您平台对应的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码发行版

aioflask-0.4.0.tar.gz (12.6 kB 查看哈希值)

上传时间 源代码

构建发行版

aioflask-0.4.0-py3-none-any.whl (14.6 kB 查看哈希值)

上传时间 Python 3

由以下组织支持