sqlalchemy.exc.ArgumentError: AsyncEngine expected, got <sqlalchemy.ext.asyncio.session.AsyncSession object at 0x000001348D1FB550>
时间: 2024-12-24 10:33:28 浏览: 6
Python核心编程 第三版
5星 · 资源好评率100%
在SQLAlchemy中,`ArgumentError: AsyncEngine expected, got <sqlalchemy.ext.asyncio.session.AsyncSession object at 0x000001348D1FB550>` 这个错误通常是由于你在异步上下文中尝试使用非异步的数据库引擎或会话对象。`AsyncEngine` 指的是用于异步操作的SQLAlchemy引擎,而 `AsyncSession` 是异步版本的会话对象。
当你预期需要一个异步的数据库引擎来进行异步操作(例如在使用asyncio库处理并发任务时),但是却传入了一个同步类型的会话对象,就会抛出这个异常。解决这个问题的方法是确保你在创建engine和session时指定了`async_`前缀,例如:
```python
from sqlalchemy import create_async_engine, async_session
# 创建异步数据库引擎
async_engine = create_async_engine('your_dialect+driver://...', echo=True)
# 使用异步会话
async_with async_engine.begin() as conn:
async_session = async_session(bind=conn)
# ... 执行异步数据库操作
```
阅读全文