我有这种设置:
现在稍后当我尝试在服务器启动后获取此全局变量的值时,我无法看到该值。这是否超出范围?如何存储在django启动之前输入的这一次令牌?
答案 0 :(得分:2)
根据命令行选项的名称判断,这听起来像一个配置变量 - 为什么不像所有其他配置一样将它放在settings.py
中?
如果它是一个您不希望签入版本控制的安全值,我看到的一种模式是在{{1}中放置安全或环境敏感(即仅在生产或开发中有意义)配置未签入版本控制的文件,然后添加到local_settings.py
:
settings.py
(请注意,有些人喜欢invert the import relationship,然后在try:
from local_settings import *
except ImportError:
# if you require a local_settings to be present,
# you could let this exception rise, or raise a
# more specific exception here
pass
的命令行中使用--settings
- 这也有效,但要求您始终记得使用{{ 1}}。)
答案 1 :(得分:2)
Python中没有“全局变量”这样的东西可以从任何地方获得。您需要先导入所有名称才能使用它们。
尽管你这样做了,但它实际上并不适用于制作。不仅没有运行命令来启动生产服务器(它由Apache或您正在使用的任何服务器软件自动完成),服务器通常在多个进程中运行,因此必须在每个进程中设置变量。它们。
你应该使用一个设置,正如dcrosta建议的那样。