Как пользователь Pylons, я пытаюсь переключиться на Pyramid, пытаясь понять различия.
В Pylons я использовал для определения сеанса в myproj.model.meta
как:
Session = scoped_session(sessionmaker())
затем импортируйте его в myproj.model
, чтобы определить модель и так далее, затем в приложении обратитесь к:
root = Session.query(MyModel).filter(...)...
теперь используется шаблон по умолчанию в Пирамида (pyramid_routesalchemy) Я определяю сеанс, как и раньше (за исключением вызова DBSession
и добавления расширения):
DBSession = scoped_session(sessionmaker(extension=ZopeTransactionExtension()))
, но в views.py
я не использую его напрямую, а создаю его экземпляр :
dbsession = DBSession()
root = dbsession.query(MyModel).filter(...)...
Почему? В чем различия?
Кроме того, в чем разница между Pyramid
import transaction
...
model = MyModel(name=u'root', value=55)
session.add(model)
session.flush()
transaction.commit()
и Pylons
model = MyModel(name=u'root', value=55)
session.add(model)
session.commit()