Django笔记&教程 1-2 二 常用配置
Django 自学笔记兼学习教程第1章第2节——二 常用配置
点击查看教程总目录
新手建议简单浏览本文,不理解的建议跳过,不要强行理解。
Django的设置涉及多个模块,需要了解Django的一些相关知识,才好理解每个设置是干什么用的,
建议在后面的章节中学过了相关的知识和概念,再回过头来看对应的设置。
1-初识settings.py
:
项目的配置文件,可用于配置该项目的所有配置。
对于一个项目而言,很多配置新手是用不到的,也有很多配置不推荐更改。
这里主要给大家介绍一些常用的配置,同时也会简单介绍下settings.py的内容。
在settings.py
的开头,有这样一段注释:
"""
Django settings for demo2 project.
Generated by 'django-admin startproject' using Django 2.2.11.
For more information on this file, see
https://docs.djangoproject.com/en/2.2/topics/settings/
For the full list of settings and their values, see
https://docs.djangoproject.com/en/2.2/ref/settings/
"""
里面给出了Django官方关于settings.py
的说明文档的链接,
其中第一个链接主要是介绍settings.py
的;第二个链接则是介绍所有的配置及配置值的。
可以粗略理解为第一个链接较简洁,第二个很详尽。
实际上,对于一些配置, settings.py
里面也有给出对应的文档链接(如下图)。
对于英文好的以及有一定编程基础的,可以直接去对应的官方文档去查看对应用法
2-新手常用
下方的默认值是指通过django-admin startproject project_name
命令新建出的项目对应的值
INSTALLED_APPS
:
指定在项目中启用的app的列表
默认值:
[
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
一般我们使用py manage.py startapp app_name
新建了app的话
都需要在这里添加(在列表里面加上'app_name'
,如下)
[
...,
'app_name',
]
不添加有时会报错,具体情况待补充(TODO)
详细文档: https://docs.djangoproject.com/en/2.2/ref/applications/
TEMPLATES
:
项目使用的所有模板引擎的设置的列表。
列表中的每一项都是一个字典,其中包含单个引擎的配置。
默认值:
[
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
一般新建项目不会自动生成模板文件夹,所以一般会手动在项目文件夹下新建templates文件夹用于存放模板
新建templates文件夹后,在上面的第一个字典(引擎)的DIRS键对应的列表中添加os.path.join(BASE_DIR, 'templates')
即
'DIRS': [],
改为
'DIRS': [os.path.join(BASE_DIR, 'templates')]
DATABASES
:
项目使用的所有数据库设置的字典。
它是一个嵌套字典,将数据库别名映射到包含单个数据库选项的字典。
必须配置默认(default
)数据库;还可以指定任意数量的其他数据库。
(默认使用SQLite做数据库配置)
默认值:
{
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
3-STATIC相关
TODO