Python 模型中的金字塔事件

Python 模型中的金字塔事件,python,events,sqlalchemy,pyramid,thread-local,Python,Events,Sqlalchemy,Pyramid,Thread Local,我用的是金字塔1.4。我想从模型类内部生成一些自定义金字塔事件。事件的生成方式如下: request.registry.notify(MyCustomEventType("Here it comes")) 如您所见,我需要访问应用程序注册表。我知道功能。但我也对金字塔网站的评论表示关注: 此函数的使用应该非常谨慎,通常仅在单元测试代码中使用 问题: 从数据层(SQLAlchemy模型)生成金字塔事件通常是个坏主意吗 如果没有,如何以更文明的方式访问应用程序注册表?(扩展Basemodel可能

我用的是金字塔1.4。我想从模型类内部生成一些自定义金字塔事件。事件的生成方式如下:

request.registry.notify(MyCustomEventType("Here it comes"))
如您所见,我需要访问应用程序注册表。我知道功能。但我也对金字塔网站的评论表示关注:

此函数的使用应该非常谨慎,通常仅在单元测试代码中使用

问题

  • 从数据层(SQLAlchemy模型)生成金字塔事件通常是个坏主意吗
  • 如果没有,如何以更文明的方式访问应用程序注册表?(扩展
    Base
    model可能吗?)
  • 如果是的话,我是否可以使用其他方法。我知道SQLAlchemy事件,但找不到生成自定义事件的功能
基本原理


基本上,我将我的应用程序划分为多个功能,并尝试将它们解耦。为此,我有时需要国际奥委会:我正计划将赛事作为一种手段。例如,每当用户回答一个问题时,就会发出一个事件。然后,可以在应用程序的其他部分中订阅此类事件。我喜欢将应用程序逻辑保留在模型中,而不是视图中。因此,问题就来了。

从模型中触发金字塔事件的用例是什么?一般来说,这是个坏主意

至于连接应用程序/模型。大部分工作都是在main()中的initialize调用中完成的,该调用将设置传递给模型,为其提供连接设置等。我会确保在应用程序启动时,任何将事情联系在一起的逻辑都只限于单个函数调用


最后,我想你想要的是用另一种方式做得更好。

你能把它分类吗?我也在想同样的问题。我没有找到访问注册表的正确方法。