擅长:python、mysql、java
<p>对于你的问题,一个更简单的解决方案(在我有偏见的观点中)是从Flask切换到<a href="https://gitlab.com/pgjones/quart" rel="noreferrer">Quart</a>。如果是这样,您的代码片段将简化为</p>
<pre><code>import asyncio
from quart import Quart
async def abar(a):
print(a)
app = Quart(__name__)
@app.route("/")
async def notify():
await abar("abar")
return "OK"
if __name__ == "__main__":
app.run(debug=False)
</code></pre>
<p>如其他答案中所述,Flask应用程序运行被阻塞,并且不与asyncio循环交互。另一方面,Quart是基于asyncio构建的FlaskAPI,因此它应该按照您所期望的方式工作</p>
<p>作为更新,Flask Aiohttp不再是<a href="https://github.com/Hardtack/Flask-aiohttp/commit/50cfc8c1f71bae9e10a4a475b06b5f6bd124e33b" rel="noreferrer">maintained</a></p>