【问题标题】:How to handle exceptions with Pyramid transaction manager?如何使用 Pyramid 事务管理器处理异常?
【发布时间】:2011-10-30 08:34:20
【问题描述】:

我正在构建我的第一个 Pyramid 应用程序(来自 Pylons),并试图弄清楚如何使用 pyramid_tm 处理异常...例如,在 Pylons 中我会做类似的事情

try:
   Session.add(object)
   Session.commit()
except IntegrityError:
   Session.rollback()
   flash("Object already present")

但是应该如何使用 pyramid_tm 来完成呢?

【问题讨论】:

    标签: python exception-handling transactions pyramid


    【解决方案1】:

    使用Session.flush() 代替Session.commit()

    使用pyramid_tm,您永远不应该(不需要)在请求处理代码中自己做commit()

    【讨论】:

    • 这完全解决了我的问题。但是我仍然不清楚我在哪里找到这个,例如,在 Pyramid 文档中。似乎 Pyramid 文档应该有这个(或至少一个指针),因为默认脚手架将直接 sqlalchemy 与 zope.sqlalchemy 结合在一起 - 让初学者有点不确定如何导航!
    猜你喜欢
    • 1970-01-01
    • 2019-09-30
    • 1970-01-01
    • 1970-01-01
    • 2012-09-09
    • 2013-04-15
    • 1970-01-01
    • 2011-11-04
    • 1970-01-01
    相关资源
    最近更新 更多