【发布时间】:2011-08-27 21:54:41
【问题描述】:
作为 Pylons 用户,我正在尝试切换到 Pyramid,现在试图了解差异。
在 Pylons 中,我习惯于将 myproj.model.meta 中的 Session 定义为:
Session = scoped_session(sessionmaker())
然后将其导入myproj.model以定义模型等然后在应用程序中参考:
root = Session.query(MyModel).filter(...)...
现在在 Pyramid (pyramid_routesalchemy) 中使用默认模板,我像以前一样定义 Session(除了调用它 DBSession 并添加扩展名):
DBSession = scoped_session(sessionmaker(extension=ZopeTransactionExtension()))
但是在views.py我不直接使用而是实例化它:
dbsession = DBSession()
root = dbsession.query(MyModel).filter(...)...
为什么?有什么区别?
另外,和金字塔有什么区别
import transaction
...
model = MyModel(name=u'root', value=55)
session.add(model)
session.flush()
transaction.commit()
到塔
model = MyModel(name=u'root', value=55)
session.add(model)
session.commit()
【问题讨论】:
标签: python session sqlalchemy pylons pyramid