使用
scoped_session
和直接使用 Session 对象的区别是什么?engine = create_engine(url)
session = scoped_session(sessionmaker(bind=engine))
session.add(..)
session.commit()
session.remove()
session.add(..)
session.commit()
session.remove()
创建scoped_session
对象的实例:
engine = create_engine(url)
session = scoped_session(sessionmaker(bind=engine))
session().add(..)
session().commit()
session.remove()
session().add(..)
session().commit()
session.remove()
通过调用session()
,Sqlalchemy总是为相同的线程返回相同的会话:
>> session() is session()
True
>> session is session()
False
在多线程环境中操作连接的方式是否正确?如果是,为什么SQLAlchemy允许使用session
而不是session()
进行查询?
Session.commit()
和Session().commit()
。问题是,有什么区别吗?也许Session().commit()
在多线程中起作用,而Session.commit()
不起作用? - User