
这里是一个被开发逼着写代码的菜鸡商务。
sqlalchemy 出了 1.4 以后想试试异步模式,就找了个 mysql 数据库写了几行测试。
import asyncio
from sqlalchemy.ext.asyncio import create_async_engine
from sqlalchemy.ext.asyncio import AsyncSession
async def main():
engine = create_async_engine("mysql+aiomysql://root:[email protected]:3333/test") session = AsyncSession(engine) await session.execute("select * from students") await session.close() if name == 'main':
asyncio.run(main()) 然后在 aiomysql 连接关闭的时候报错 event loop is closed,我感觉我的代码写的没问题啊,就这么三四行,然后我还不甘心把官方文档里的例子改成 aiomysql 丢进去还是一样的错。
想请试过的大神给指导下
1 Te11UA Apr 2, 2021 目测用的是 Windows Linux 环境应该不会了 |
2 Wincer Apr 2, 2021 没用过异步模式,但是你的写法似乎与官方文档的不太一致。https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html,文档里是使用 async with async_session() as session: 这样来创造 session 的,你可以按文档里说的试试 |