假设我的Django项目有一些全局设置,存储在文本文件中以便于编辑.我想加载设置,然后存储这些变量,以便可以从任何视图函数访问它们.但是,我已经读过Django中的全局变量是不鼓励的.那么,我该怎么做呢?我知道如何将这些变量存储在数据库中,但这对于存储一些简单的变量来说似乎有些过分.
正如alecxe已经指出的那样,您可以使用设置系统.这是设置必须在项目范围内使用的值的常用方法.如果您阅读我已链接的文档,您会看到他们很早就在该页面上介绍了如何设置您自己的设置.
使用Django的设置系统时,您不能做的一件事是参考模块顶层的设置.例如,如果您有一个视图执行此操作:
from django.conf import settings
FOO = settings.FOO
Run Code Online (Sandbox Code Playgroud)
(或者alecxe的print陈述.)这将防止值被覆盖.这里的文档详细介绍了这些内容.我记得因此而在测试中遇到了问题,因为我的一些测试试图覆盖默认值,但失败了.
我上面提到的设置系统应该用于在启动时设置的值,之后不要更改.如果要记录网站管理员在运行时可以更改的设置,则应使用某种类型的数据库.
只需存储变量settings.py,这是存储项目特定设置的最佳和可取的方式.然后,您始终可以通过导入来访问它们django.conf.settings:
from django.conf import settings
print settings.MY_SETTING
Run Code Online (Sandbox Code Playgroud)
希望有所帮助.
| 归档时间: |
|
| 查看次数: |
9118 次 |
| 最近记录: |