gpt4 book ai didi

python - flask 信号 : why is it not ok to modify data on signal?

转载 作者:太空狗 更新时间:2023-10-29 21:55:04 26 4
gpt4 key购买 nike

Flask 文档说:

Also keep in mind that signals are intended to notify subscribers and should not encourage subscribers to modify data

我想知道,为什么会这样?

我正在使用 Flask-User 库,我想在用户注册时为用户设置一些默认字段(例如,将显示名称设置为等于用户名),然后更新数据库。 Flask-User 在用户注册时发送user_registered 信号。为什么订阅信号并更新其中的数据库是个坏主意?

最佳答案

它是over-round 解决方案。我想我是强大的 Drupal/PHP 开发人员。直到第 7 个版本,一切都是使用钩子(Hook)构建的 - 信号(Flask)。当一切都建立在钩子(Hook)上时,项目就会变得一团糟。这是一个快速但危险的过程。信号被设计用作观察者模式,它喜欢事件。这是主要思想。但是当我们能够更新上下文时,主题。它喜欢责任链。主要问题是链条。因此,如果一个项目失败,则其他项目会收到错误的状态。这是主要问题。有时很难找到失败的罪魁祸首。因为我们有来自不同主题的不同信号,所以这些修改了共同范围。

你几乎可以在任何地方扩展,但你不应该改变数据。要正确扩展,您应该使用干净的 OOP 解决方案。

有时我们需要改变一些逻辑。所以我们需要定义一个我们需要改变的篮子。在 Drupal 8 中,我们使用依赖注入(inject)容器 - 服务。服务在单独的文件中描述。所以我们能够改变关系和注入(inject)。

有一个有趣的图书馆 - https://pypi.python.org/pypi/Flask-Injector .

关于python - flask 信号 : why is it not ok to modify data on signal?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25471901/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com