Django - 配置文件
1. BASE_DIR
__file__这个变量可以获取到当前文件(包含这个代码的文件)的路径。os.path.dirname(__file__) 得到文件所在目录,再来一个os.path.dirname()
就是目录的上一级,BASE_DIR 就是项目根目录
2. DEBUG
是否打开调试模式,DEBUG = True时,前端调用出错会在页面打印出错信息,为False时不会打印,当DEBUG = False 时,ALLOWED_HOSTS必须设置
3. ALLOWED_HOSTS
允许访问的域名集合,如:ALLOWED_HOSTS = ['*.demon.*', 'www.baidu.com'],可以填*表示所有人可以访问
4. STATIC
4.1 STATIC_URL
前端访问静态文件的路径,例如:http://localhost:8000/static/color.css
* 假如你的app下的static文件夹下有一个color.css,项目根目录下的static文件夹下也有一个color.css,Django查找这个文件的顺序是什么?
按照规则,它会先去app下的static文件夹下找,如果找到就直接返回,如果没找到,就会去 STATICFOLES_DIRS 里面指定的路径下顺序查找,为了避免
这种情况,有两个解决办法,一种是把app下的color.css前面加一个路径,比如:/myblog/blog/static/color.css 改为 /myblog/blog/static/blo
g/color.css,另外一种方法,就是修改每个静态文件的前缀名为app_,这是两种比较简单的方法。
-
STATIC_URL = '/static/'
4.2 STATIC_ROOT
静态文件的根目录,我们一般会把静态文件放在项目根目录下的static文件夹下,或者app的static文件夹下,部署的时候,我们可以使用
python manage.py collectstatic 将所有app 下以及 STATICFILES_DIRS下的静态文件全部复制到 STATIC_ROOT 下。
-
STATIC_ROOT = '/home/demon/static'
4.3 STATICFILES_DIRS
指定其他(非 app 下的)静态文件的存放路径
-
STATICFILES_DIRS = (
-
os.path.join(BASE_DIR, "common_static"),
-
'/myblog/static/ ',
-
)
5. MEDIA
-
# 用来存放用户上传的文件
-
MEDIA_URL = '/media/'
-
MEDIA_ROOT = os.path.join(BASE_DIR,'media')
6. TEMPLATE_DIRS
一般用户都会在 app下创建爱你一个 templates文件夹来存放模板文件,但有一些模板文件可能是多个app共用的,这时就用它来指定
-
# 这时就可以访问 templates 和 templates2 下的模板文件
-
TEMPLATES = [
-
{
-
'BACKEND': 'django.template.backends.django.DjangoTemplates',
-
'DIRS': [
-
os.path.join(BASE_DIR,'templates').replace('\\', '/'),
-
os.path.join(BASE_DIR,'templates2').replace('\\', '/'),
-
],
-
'APP_DIRS': True,
-
]
7. STATICFILES_FINDERS
用来指定静态文件的搜索路径
-
# 下面会先查找 STATICFILES_DIRS 下的静态文件,找不到就去 app 下查找
-
STATICFILES_FINDERS = (
-
"django.contrib.staticfiles.finders.FileSystemFinder",
-
"django.contrib.staticfiles.finders.AppDirectoriesFinder"
-
)