这里是一个被开发逼着写代码的菜鸡商务。
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 2021-04-02 14:54:11 +08:00
目测用的是 Windows
Linux 环境应该不会了 |
2
Wincer 2021-04-02 14:54:23 +08:00
没用过异步模式,但是你的写法似乎与官方文档的不太一致。https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html,文档里是使用 async with async_session() as session: 这样来创造 session 的,你可以按文档里说的试试
|