我的理解是,以下代码将返回错误:
from src.mysqlClient import db_session
from src.mysqlClient.models import AdvertDom
with db_session() as session:
advert_doms = session.query(AdvertDom).all()
for advert_dom in advert_doms:
print(advert_dom.HTMLContent)
我的理解是,错误是由会话结束引起的,会话结束会断开advert_doms
列表与数据库的连接
如果我有一个返回ORM对象或ORM对象列表的函数,那么我以后如何让这些对象与数据库“重新连接”,以便上面的代码能够工作
这里有一个例子来说明我的意思:
from src.mysqlClient import db_session
from src.mysqlClient.models import AdvertDom
def function_one():
with db_session() as session:
advert_doms = session.query(AdvertDom).all()
return advert_doms
def function_two()
advert_doms = function_one()
# TODO: Do something here so that the code below will work.
for advert_dom in advert_doms:
print(advert_dom.HTMLContent)
答案是创建一个新会话并执行
session.add(orm_object)
:避免此问题的另一种方法是只使用一个全局会话对象,在两个函数都运行之前,该对象不会关闭
相关问题 更多 >
编程相关推荐