布尔检查Django的Settings.py内部始终处理为True

时间:2017-08-17 03:19:48

标签: python django

我正在尝试将一些检查引入我的Django 1.10项目的settings.py文件中,作为采用django-environ包并遵守12-Factor类型配置的一部分。

在这样做时,我注意到每当我在settings.py中引入布尔检查时,无论操作数是True还是False,都会处理if语句中的块。

示例:

import environ
root = environ.Path(__file__) - 2 # three folder back (/a/b/c/ - 3 = /)
env = environ.Env(DEBUG=(bool, False),) # set default values and casting
environ.Env.read_env() # reading .env file

DEBUG = env('DEBUG') # False if not in os.environ
TEMPLATE_DEBUG = DEBUG
CLOUD = env('CLOUD', default=False)

ALLOWED_HOSTS = []

if env('CLOUD') and env('ALLOWED_HOST'):
    ALLOWED_HOSTS.append(env('ALLOWED_HOST', default=''))
    ALLOWED_HOSTS.append(env('ALLOWED_HOST_ALIAS', default=''))

始终处理最后if语句中的代码。

我的问题是这种行为是否是典型的Django的settings文件?它为什么要这样做?另外,基于从配置文件加载的值(或不存在)来实现某些条件检查的最佳方法是什么?

0 个答案:

没有答案