(3) Django - settings.py 配置
2019-01-10 本文已影响0人
libdream
Django项目的配置文件settings.py
主要配置有:
-
项目路径
BASE_DIR
:读取当前项目在系统的具体路径,一般无须修改 -
密钥配置
SECRET_KEY
:一个随机值,自动生成,无须修改 -
调试模式
DEBUG
:开发阶段设置为True
,项目部署上线时改为False
-
域名访问权限
ALLOWED_HOSTS
:值为空时只允许本地访问,当DEBUG
为False
时为必填项,如想允许所有域名访问,可设值为['*']
-
App列表
INSTALLED_APPS
:告诉Django有哪些app,内置的app有admin、auth、contenttypes、sessions、messages、staticfiles
。如果在项目创建了app,必须在这里添加app名称。 - 静态资源`STATIC_URL:定义静态资源存放的目录路径
-
模板路径
TEMPLATES
:模板配置 -
数据库
DATABASES
:数据库配置 -
中间件
MIDDLEWARE
:中间件是处理request和response对象的钩子,主要是处理用户请求信息。
还有一些其他比较重要的配置项,如:
TIME_ZONE
参数就是配置时区
的,将其值改为'Asia/Shanghai'
,就可以使用上海的UTC时间
TIME_ZONE = 'Asia/Shanghai'
LANGUAGE_CODE
参数就是配置语言
的,将其值改为'zh-Hans'
,就可以使后台变为中文界面了。
LANGUAGE_CODE = 'zh-Hans'
settings.py文件的主要介绍如下:
import os
#项目路径
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
#密钥配置
SECRET_KEY = '2q9e&95qhfgb438tsbq@h#o$#-5@xnplh@dufx0@4ahg#o+9zg'
#调试模式:项目部署阶段需要设为False
DEBUG = True
#域名访问权限:当DEBUG为False时,该值为必填项。如果想允许所有域名访问,
#该值可设为ALLOWED_HOSTS = ['*']
ALLOWED_HOSTS = []
#app列表
INSTALLED_APPS = [
'polls.apps.PollsConfig', #自定义的投票app
'django.contrib.admin', #内置的后台管理系统
'django.contrib.auth', #内置的用户认证系统
'django.contrib.contenttypes',#记录项目中所有model元数据(Django的ORM框架)
'django.contrib.sessions', #Session会话功能
'django.contrib.messages', #消息提示功能
'django.contrib.staticfiles',#查找静态资源路径
]
#中间件
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',#内置的安全机制,保护用户与网站的通信安全
'django.contrib.sessions.middleware.SessionMiddleware',#会话Session功能
'django.middleware.common.CommonMiddleware',#处理请求信息,规范化请求内容
'django.middleware.csrf.CsrfViewMiddleware',#开启CSRF防护功能
'django.contrib.auth.middleware.AuthenticationMiddleware',#开启内置的用户认证系统
'django.contrib.messages.middleware.MessageMiddleware',#开启内置的信息提示功能
'django.middleware.clickjacking.XFrameOptionsMiddleware',#防止恶意程序点击劫持
]
ROOT_URLCONF = 'mysite.urls'
#模板
TEMPLATES = [
{ #定义模板引擎,用于识别模板里面的变量和指令
'BACKEND': 'django.template.backends.django.DjangoTemplates',
#设置模板所在路径,默认为空列表
'DIRS': [os.path.join(BASE_DIR, 'templates'),
],
#是否在app里查找模板文件
'APP_DIRS': True,
#用于填充在RequestContext中上下文的调用函数,一般不做修改
'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',
],
},
},
]
WSGI_APPLICATION = 'mysite.wsgi.application'
# Database
DATABASES = {
#第一个数据库(默认数据库)
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
},
#第二个数据库
'mysql': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'music_db',
'USER':'root',
'PASSWORD':'123456',
'HOST':'127.0.0.1',
'PORT':'3306',
},
}
#验证
AUTH_PASSWORD_VALIDATORS = [
{
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
},
]
#设为中文语言
LANGUAGE_CODE = 'zh-hans'
#设为上海时区
TIME_ZONE = 'Asia/Shanghai'
USE_I18N = True
USE_L10N = True
USE_TZ = True
#静态文件路径(CSS, JavaScript, Images)
STATIC_URL = '/static/'