这里说一下django中的settings配置以及大概的功能介绍
下面是大概的settings配置范例(这里可能跟我们刚建立完项目(project)和应用(app)看到的有点不同,是因为我把所有的英文注释就是那些三引号和#号注释的部分去掉了,以及我配置的部分改动),下面一一说明:
import os
# 导入os模块
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# 指定根目录 __file__是表示settings.py这个文件,
# os.path.abspath(__file__) 表示settings.py的绝对路径,
# os.path.dirname(os.path.abspath(__file__)) 代表settings.py的绝对路径的上一级,
# os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 代表项目的最外层,就是指定了根目录
DEBUG = True
# 配置为True的时候会暴露出一些出错信息或者配置信息以方便调试.
# 但是在上线的时候应该将其关掉,防止配置信息或者敏感出错信息泄露.
ALLOWED_HOSTS = []
# ALLOWED_HOSTS是为了限定请求中的host值,以防止黑客构造包来发送请求.
# 只有在列表中的host才能访问.强烈建议不要使用*通配符去配置,
# 另外当DEBUG设置为False的时候必须配置这个配置.否则会抛出异常
INSTALLED_APPS = ( # 是一个一元数组.里面是应用中要加载的自带或者自己定制的app包路径列表.
'django_admin_bootstrapped',
# 引入boorstrap框架的样式,可以让后台更美观,
# 需要先pip install django_admin_bootstrapped去安装,不添加这一条也可以
'django.contrib.admin',
# 管理站点,管理后台
'django.contrib.auth',
# 认证系统
'django.contrib.contenttypes',
# 用于内容类型的框架
'django.contrib.sessions',
# 会话框架
'django.contrib.messages',
# 消息框架
'django.contrib.staticfiles',
# 管理静态文件的框架
'polls'
# 我手动添加的,这里加上你创建的应用(App)的名字,注册进来
)
MIDDLEWARE_CLASSES = ( # 中间件:web应用中需要加载的一些中间件列表.是一个一元数组.里面是django自带的或者定制的中间件包路径
'django.contrib.sessions.middleware.SessionMiddleware',
# 关于会话的中间件
'django.middleware.common.CommonMiddleware',
#
'django.middleware.csrf.CsrfViewMiddleware',
# 防止恶意提交的中间件
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.security.SecurityMiddleware',
)
ROOT_URLCONF = 'mysite.urls'
# 指定URLconfig的路径
TEMPLATES = [ # 对template的一些设置
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
# BACKEND是python实现Django模板引擎类的模板后端API
'DIRS': [os.path.join(BASE_DIR, 'templates')],
# 指定templates(模板)的根目录
'APP_DIRS': True,
# 当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',
],
},
},
]
WSGI_APPLICATION = 'mysite.wsgi.application'
DATABASES = {# 这里是你数据库的一些设置
'default': {
'ENGINE': 'django.db.backends.mysql',
# 指定你使用的数据库引擎,这里是mysql,你也可以是oracle等其他数据库引擎
'NAME': 'polls',
# 这里是你数据库的名字,一般为你的应用的名字,便于记忆
'USER': 'root',
# 设置你数据库的用户名,一般都是root
'PASSWORD': '214563',
# 这里是你数据库的密码
'HOST': '',
# 指定你数据库所在的主机名,一般设置为空
'PORT': '3306'
# 这是你数据库的端口号, 可默认为空
}
}
LANGUAGE_CODE = 'zh-Hans'
# 指定你的语言zh-Hans表示汉语,默认是en-us表示英语
TIME_ZONE = 'UTC'
# 这里指定django的时区
USE_I18N = True
# 用于指定是否Django的翻译系统应该启用
USE_L10N = True
# 用于指定如果本地化格式的数据将被默认启用。默认设置为True,如Django使用的格式将数字和日期显示当前的语言环境。
USE_TZ = True
# 用于指定是否将默认timezone-aware日期时间。如果这是设置为True,Django使用内部timezone-aware日期时间。否则,Django将在当地时间、日期时间。
STATIC_URL = '/static/'
# 指定静态文件的路径
STATICFILES_DIRS = ( # 指定静态文件的根目录
os.path.join(BASE_DIR, 'static'),
)
MEDIA_URL = '/uploads/'
# 指定上传文件的路径,要建立一个名为uuploads的文件夹
MEDIA_ROOT = os.path.join(BASE_DIR, 'uploads')
# 指定上传的根目录
APPEND_SLASH = False
中间件指定的顺序和实际运行时运行的顺序相关,
在request阶段:process_request,process_view 按照其所在类在配置中的先后顺序进行,
在response阶段:process_response,process_exception 则按照相反的顺序进行。
还有一点就是在整个流程中,每一个process_response都会执行到,
而其余三种,都可能会因为其他的直接retuen response或者不发生异常而不被执行到。