–总结Django中使用到的配置,以及在什么情况下进行什么样的配置
基础认识
Django 的设置文件包含你安装的Django 的所有配置,设置文件只是一个Python 模块,带有模块级别的变量。
比如下面图片展示的设置:
注意,如果项目在上线的时候,是不能将DEBUG设置为True,也就是说,你就必须将Debug=False,如果你设置DEBUG 为False,那么你应该正确设置ALLOWED_HOSTS 的值,用来进行访问。
配置文件是一个python文件,所以适用于下面的条件:
- python语法动态设置
my_setting = [str(i) for i in range(9)]
- 不允许出现python语法错误
- 可以通过导包的方式获取相关的参数
指定配置文件
在使用Django的时候,需要通过环境变量DJANGO_SETTINGS_MODULE
来告知Django使用那个配置:
注意:DJANGO_SETTINGS_MODULE
的值应该使用Python 路径的语法,例如django_test.settings。 注意,设置模块应该在Python 的导入查找路径 中。
Django的默认配置
Django 的设置文件不需要定义所有的设置。 每个设置都有一个合理的默认值。 这些默认值位于django/conf/global_settings.py 模块中;
当然了,我们可以通过python manage.py diffsettings
这条命令来获取当前我们的配置文件中,哪些和默认的不同
在其他python文件中使用settings
在Django 应用中,可以通过导入django.conf.settings
对象来使用配置文件中的相关参数,比如:
from django.conf import settings
if settings.DEBUG:
# Do something
但是,需要注意的是,django.conf.settings
不是一个模块 ,它是一个对象。 所以不可以导入每个单独的设置:
from django.conf.settings import DEBUG # 这是错误的
还需要注意的是,你的代码不应该 从global_settings 或你自己的配置文件中导入。 django.conf.settings
摘录了默认配置和站点特定设置的概念;它提供了一个单一的接口,就是针对本django框架中的所有配置的;通俗来说,你想要获取配置文件的数据,就用django.conf.settings
这个方式即可。
“独立”Django使用需要调用django.setup()
这个’独立‘的意思就是,运行一个python脚本运行,但是这个脚本是需要依赖django中的一些配置,那么就需要用到django.setup()
;
比如:
注意,只有在代码是真正独立的,才需要调用django.setup()。 当Web服务器调用,或通过django-admin调用,Django将会自动处理此相关配置加载的。
django.setup() 只能进行调用一次,如果不能保证只能被调用一次,那么需要在当前文件下这样写:
if __name__ == '__main__':
import django
django.setup()