gpt4 book ai didi

django - 为什么 django 设置不应在运行时更改?

转载 作者:行者123 更新时间:2023-12-02 02:22:27 25 4
gpt4 key购买 nike

django 文档明确指出

You shouldn't alter settings in your applications at runtime.

这是link to that statement

我的问题是,为什么会这样?我想在运行时动态添加应用程序,并在运行时添加数据库,这两者都涉及编辑设置。有人可以解释为什么设置不能在运行时编辑,如果存在异常,它们是什么设置以及为什么它们是异常的?我对如何实现目标不太感兴趣,而是对为什么不应更改设置的原因感兴趣。

最佳答案

如果您在运行时更改大多数设置,则不会重新读取它们。因此 Django 将无法识别您所做的更改。

这是因为 Django 只是普通的 Python 代码。它不像监视您代码的服务器 - 它只是您代码的一部分。

在某些情况下,Django 代码的一部分可能会响应设置的更改,因为例如,每次发送邮件时它们可能会执行“settings.DEFAULT_FROM_EMAIL”。

但是,如果 Django 以任何方式处理该设置,就像它对 INSTALLED_APPS 所做的那样,它不会注意到您更改了某些内容并重新进行处理。

哪些设置是安全的?嗯,文档说“没有一个是安全的”,因为它将来可能会改变。 Django 可能会出于某种原因保存任何设置的副本,或者进行一些处理。

更改 INSTALLED_APPS 永远不会起作用,因为它会改变导入的模块。 Django 根本不可能像 Python 在这个级别上的工作方式一样工作 - 它需要能够“卸载”模块,这基本上是不可能的(唯一的方法是重新启动该进程),并且还有其他方法与跨应用链接相关的问题。

关于django - 为什么 django 设置不应在运行时更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11621903/

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