django(二)settings配置


这里说一下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或者不发生异常而不被执行到。


热评文章