SQLAlchemy-不使用会话将ResultProxy映射到映射类
我非常希望在通过会话进行查询时避免状态绑定到实体,并利用类映射而不依赖于:SQLAlchemy-不使用会话将ResultProxy映射到映射类,sqlalchemy,Sqlalchemy,我非常希望在通过会话进行查询时避免状态绑定到实体,并利用类映射而不依赖于: session.query(SomeClass) 我不需要事务、即时/延迟加载、更改跟踪或提供的任何其他功能。本质上,我希望手动将ResultProxy绑定到映射类,并拥有一个实例列表,这些实例没有任何对SQLA的引用,比如state 我尝试了Query.instances,但它需要一个会话实例: engine = create_engine('sqlite:///:memory:') meta = MetaData(
session.query(SomeClass)
我不需要事务、即时/延迟加载、更改跟踪或提供的任何其他功能。本质上,我希望手动将ResultProxy绑定到映射类,并拥有一个实例列表,这些实例没有任何对SQLA的引用,比如state
我尝试了Query.instances,但它需要一个会话实例:
engine = create_engine('sqlite:///:memory:')
meta = MetaData()
meta.bind = engine
table = Table('table, meta,
Column('id', Integer, primary_key=True),
Column('field1', String(16), nullable=False),
Column('field2', String(60)),
Column('field3', String(20), nullable=False)
)
class Table(object)
pass
meta.create_all(checkfirst=True)
for i in range(10):
user.insert({'field1': 'field1'+i,'field2': 'field2'+i*2,'field3': 'field3'+i*4})
mapper(Table, table)
query = Query((Table,))
query.instances(engine.text("SELECT * FROM table").execute())
结果:
Traceback (most recent call last):
File "sqlalchemy/orm/mapper.py", line 2507, in _instance_processor
session_identity_map = context.session.identity_map
AttributeError: 'NoneType' object has no attribute 'identity_map'
我被困在这一点上了。我已经浏览了Query.instances,手动设置复制会话似乎非常广泛。它需要查询、查询上下文、地图和精心编排,这会让大多数芭蕾舞团脸红
tl;dr希望使用SQLAlchemy的查询生成任何返回ResultProxy实例并将结果映射到各自类的内容,同时跳过与会话、标识映射和工作单元相关的内容。您可以删除该对象,这样它就不会维护会话,但它仍然具有\u sa属性
看到您已经有一段时间没有提出请求了,它可能不会为您服务,但可能对其他人来说,您可以删除该对象,因此它不会维护会话,但它仍然具有_sa属性 既然你已经有一段时间没问了,它可能不会为你服务,但可能会为其他人服务