python - 如何从python中的异步方法返回值?

标签 python asynchronous flask

我有以下 flask 应用程序:

async def run():
   conn = await asyncpg.connect(db_url)
   values = await conn.fetch('''SELECT ... FROM ... WHERE ...;''')
   await conn.close()

@app.route('/')
def test():
    loop = asyncio.get_event_loop()
    res = loop.run_until_complete(run())
    return json.dumps([dict(r) for r in res]) 

if __name__ == '__main__':
    app.run()

当我运行这段代码时,我得到了 TypeError: 'NoneType' object is not iterable。如何返回转换为 JSON 的 values

最佳答案

您需要在 run 函数中返回您的值,以便它们在 test 中可用:

async def run():
   conn = await asyncpg.connect(db_url)
   values = await conn.fetch('''SELECT ... FROM ... WHERE ...;''')
   await conn.close()
   return values

关于python - 如何从python中的异步方法返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42832543/

相关文章:

python - json.decoder.JSONDecodeError : Expecting value: line 2 column 1 (char 1) error

android - 如何让我的加速度计在锁定屏幕上工作(onPause)?

python - 在我的简单 Flask 应用程序中,我无法从 models.py 导入类。循环导入?

javascript - 我可以在 forEach() 数组助手之后链接 .then() 吗?

python - 使用 python 的多处理在 celery 工作人员和 Flask 之间共享列表

python - 使用 pandas 和 Google App Engine 时出现 AttributeError

python - 有没有一种优雅的方法来跟踪 Python 中的连接项集?

python - 谁能帮忙解释一下Python教程中的这一段吗?

python - 关闭 cmd,同时保留 Tk 对象

c# - 如何检查我的 Discord.Net 机器人是否已连接到语音 channel