Ale*_*lin 7 python flask blinker
Flask文件说:
另请注意,信号旨在通知订阅者,不应鼓励订阅者修改数据
我在想,为什么会这样?
我正在使用Flask-User库,我想在用户注册时为用户设置一些默认字段(例如,将displayname设置为等于username),然后更新db.Flask-User user_registered
在用户注册时发送信号.为什么订阅信号并在其中更新db是个坏主意?
这是过度的解决方案。我想我是一名强大的 Drupal/PHP 开发人员。到第 7 个版本为止,所有内容都是使用钩子 - 信号(Flask)构建的。当一切都建立在钩子上时,项目就会变得一团糟。这是一个快速的过程,但很危险。信号被设计为用作观察者模式,它喜欢事件。这是主要思想。但是当我们能够更新上下文、主题时。它喜欢对连锁负责。主要问题是链条。因此,如果一项失败,另一项就会收到错误的状态。这是主要问题。有时很难找到失败的罪魁祸首。因为我们有来自不同主题的不同信号,所以这些信号改变了共同范围。
您几乎可以在任何地方扩展,但不应该更改数据。要正确扩展,您应该使用干净的 OOP 解决方案。
有时我们需要改变一些逻辑。所以我们需要定义一个我们需要改变的篮子。在 Drupal 8 中,我们使用依赖注入容器 - 服务。服务在单独的文件中描述。所以我们可以改变关系和注入。
有一个有趣的库 - https://pypi.python.org/pypi/Flask-Injector。
归档时间: |
|
查看次数: |
1018 次 |
最近记录: |