SqlAlchemy - 数据库Orm
May 16, 2024
Sqlalchemy异步操作不完全指北 - 米洛丶 - 博客园 # cnblogs.com 异步SQLAlchemy # SQLAlchemy作为一款通用的Python Orm工具,在最近的版本也支持了异步操作。但网上很多资料都不是很齐全,API也不是很好查询的情况下,我便有了整理一份基础文档的想法。文章主要会以CRUD为入口,解决大家最基本的需求。 engine的区别 # 在普通的SQLAlchemy中,建立engine对象,我们会采用下面的方式: from sqlalchemy import create_engine engine = create_engine(SQLALCHEMY_DATABASE_URI, pool_recycle=1500) 而异步的方式如下: from sqlalchemy.ext.asyncio import create_async_engine async_engine = create_async_engine(ASYNC_SQLALCHEMY_URI, pool_recycle=1500) session的区别 # 我们一般用sessionmaker来建立session,不过异步的有点区别: from sqlalchemy.ext.asyncio import AsyncSession from sqlalchemy.orm import sessionmaker # 同步session Session = sessionmaker(engine) # 异步session 区别在于需要指定对应的class_ async_session = sessionmaker(async_engine, class_=AsyncSession) 建立会话 # 我们还是以代码的形式展示: # 同步 with Session() as session: # 里面是具体的sql操作 pass # 异步 async with Session() as session: # 里面是异步的操作,区别就是从with变成了async with 也就意味着方法必须是async修饰的 pass 以上是关于建立连接,处理会话的一些区别,接着我们讲对应的CRUD操作。 ...