flask 写异步接口
时间: 2023-10-25 10:10:58 浏览: 35
Flask是一个基于WSGI的轻量级Web应用框架,本身不支持异步编程,但可以通过使用异步库来实现异步接口。
一种实现异步接口的方法是使用asyncio库,下面是一个示例代码:
```python
import asyncio
from flask import Flask, jsonify
app = Flask(__name__)
async def async_function():
# 异步操作
await asyncio.sleep(1)
return {'result': 'Hello, World!'}
@app.route('/async')
async def async_route():
result = await async_function()
return jsonify(result)
if __name__ == '__main__':
app.run()
```
在上面的示例中,async_function是一个异步函数,它使用await关键字来等待异步操作完成。在async_route中,我们使用await关键字来调用异步函数并等待其完成,然后将结果转换为JSON格式并返回给客户端。
在启动应用程序时,我们使用标准的app.run()方法来启动Flask应用程序。然而,由于异步路由不能与标准的WSGI服务器一起使用,我们需要使用异步服务器来运行它。可以使用像gunicorn或uvicorn这样的异步服务器来运行应用程序。例如,使用uvicorn可以这样启动应用程序:
```
$ uvicorn app:app
```
这将启动一个异步服务器并运行应用程序。客户端现在可以访问异步接口(/async)并等待异步操作完成。