这一篇我们来讲解setting.py,具体内容以注释形式写入到下面的setting.py代码中,篇幅所限已把官方所给英文注释删除。
全部源代码和详解请参看http://github.com/Cheng0829/mysite
import os
#Python 使用os.path模块中的对象和方法,处理目录。该模块提供大量用于路径判断、切分、连接及遍历的方法。
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
#dirname命令去除文件名中的非目录部分,仅显示与目录有关的内容
SECRET_KEY = '@b$8i+!t0^3%k1-ui1^y!9-88g1lld!fus8wxa9$z)y#uql#24'
#安全警告:生产中使用的密匙保密
DEBUG = True
ALLOWED_HOSTS = []
#限定请求中的host值,以防止黑客构造包来发送请求。只有在列表中的host才能访问,host:主机
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog',
]
#已安装的app,当 django-admin startapp blog 后,需在此列表添加blog元素
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
#middleware,意为中间件,是提供系统软件和应用软件之间连接的软件,以便于软件各部件之间的沟通,
#特别是应用软件对于系统软件的集中的逻辑,在现代信息技术应用框架如Web服务、面向服务的体系结构等中应用比较广泛
ROOT_URLCONF = 'mysite.urls'
#URLconf 就像是 Django 所支撑网站的目录。 它的本质是 URL 模式以及要为该 URL 模式调用的视图函数之间的映射表。
# 你就是以这种方式告诉 Django,对于这个URL调用这段代码,对于那个 URL 调用那段代码。
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',
],
},
},
]
WSGI_APPLICATION = 'mysite.wsgi.application'
#WSGI,全称Python Web Server Gateway Interface,意为PythonWeb服务器网关接口,是Python应用程序或框架和Web服务器之间的一种接口,
#WSGI 没有官方的实现, 因为WSGI更像一个协议. 只要遵照这些协议,WSGI应用(Application)都可以在任何服务器(Server)上运行。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
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',#数字密码验证器,看密码是不是数字
},
]
#密码验证程序
#django支持文本翻译,修改日期,时间和数字格式,以及时区:
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
USE_I18N = True #国际化,变量为true则支持翻译
USE_L10N = True #国际化,变量为true则支持修改格式
USE_TZ = True #国际化,变量为true则支持修改TIME_ZONE
STATIC_URL = '/static/'
#这个static是在blog应用下建立的static目录,用来存放静态资源,支持CSS,JavaScript,Images语言。
全部源代码和详解请参看http://github.com/Cheng0829/mysite