Django:全局设置变量

9
假设我有一些全局设置存储在文本文件中以便于编辑,与我的Django项目相关。我想要加载这些设置,然后存储这些变量,使它们可以从任何一个视图函数中访问。但是,我已经了解到在Django中不鼓励使用全局变量。那么,我应该怎么做呢?我知道如何将这些变量存储在数据库中,但这似乎对于仅存储几个简单变量来说有些过度。
2个回答

10
作为alecxe已经指出的,您可以使用settings系统。这是设置必须在整个项目中使用的值的惯用方法。如果您阅读我提供链接的文档,您会发现他们在该页面早期就涵盖了如何设置自己的设置。
当您使用Django的设置系统时,您不能在模块的顶层引用设置。例如,如果您有一个视图执行以下操作:
from django.conf import settings

FOO = settings.FOO

(或者是alecxe的print语句。)这将防止值被覆盖。这里的文档详细介绍了细节。我记得在测试中曾因此遇到问题,因为我的一些测试试图覆盖默认值,但失败了。
上面提到的设置系统应该用于那些在启动时需要设置而不需要后续更改的值。如果您想记录可以由站点管理员在运行时更改的设置,您应该使用某种类型的数据库。

6

把你的变量存储在 settings.py 中,这是存储项目特定设置的最佳和首选方式。然后,通过导入 django.conf.settings 即可随时访问它们:

from django.conf import settings

print settings.MY_SETTING

希望这能帮到您。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接