自动化测试平台搭建系列(3)——详细解析Django中的settings.py内的配置


接上篇文章:
自动化测试平台搭建系列(2)——新手学习Django,创建第一个“APP”

大纲

打开settings.py文件后会看到有以下几个配置项:
BASE_DIR
SECRET_KEY
DEBUG
ALLOWED_HOSTS
INSTALLED_APPS
MIDDLEWARE
ROOT_URLCONF
TEMPLATES
WSGI_APPLICATION
DATABASES
AUTH_PASSWORD_VALIDATORS
LANGUAGE_CODE
TIME_ZONE
USE_I18N
USE_L10N
USE_TZ
STATIC_URL
DEFAULT_AUTO_FIELD
接下来就对它一一讲讲一下(视频+百度+请教前辈,不对之处,请多多指出,我会继续更新的)
首先我还是百度翻译底层是啥意思吧
BASE_DIR:基本目录
用于绑定项目文件位置的绝对路径(动态计算出来的),所有文件夹都依赖于此路径
主要通过os模块读取当前项目在系统的具体路径,该代码在创建项目时自动生成,这个默认设置,不要动它就对了!!!

SECRET_KEY:密匙

主要用于重要数据的加密处理,提高系统安全性,避免遭到攻击者恶意破坏。密钥主要用于用户密码,CSRF机制和会话Session等数据加密
据说没啥用,可以随便改,但是个人建议,也不要动它就行了,默认万岁

DEBUG:调试

这个就很好理解了(终于遇到一个认识的单词)
值为布尔类型,开发阶段设置为True,即会自动检测代码是否发生修改,根据检测结果是否刷新重启系统
如果开启了DEBUG模式,那么以后我们修改了Django项目的代码,然后按下ctrl+s,那么Django就会自动的给我们重启项目,不需要手动重启。
如果以后Django项目中的代码出现bug了,那么在浏览器中和控制台会打印出错信息。否则的我们很难寻找到bug的位置,也不方便调试代码。
在生产环境中,禁止开启DEBUG = True,因为当你的网站出错误时,别人能看到你的源代码,而我们也不需要给用户看到这些错误信息。所以需要关掉DEBUG = True,即设置DEBUG = False
如果设置了DEBUG = False,那么就必须设置settings.py中的ALLOWED_HOSTS,需要设置为服务器的ip地址,客户端才可正常访问
也就是说,测试环境下开启debug,线上环境关闭debug

ALLOWED_HOSTS:域名访问权限

这个变量是用来设置以后别人只能通过这个变量中的ip地址或者域名来进行访问。
当DEBUG=True时,切ALLOWED_HOSTS为空时,只允许以localhost 或 127.0.0.1 在浏览器上访问
当DEBUG=False时,ALLOWED_HOSTS为必填项,如果想允许所有 域名访问,可设置成 ALLOWED_HOSTS=["*"]

INSTALLED_APPS:已安装的应用程序

告诉Django有哪些App。Django内置应用功能:admin、auth和session等配置信息。
在这里插入图片描述
admin:内置后台管理系统。
auth:内置的用户认证系统。
contenttypes:记录项目中所有model元数据(Django的ORM框架)
session:Session 会话功能,用于标识当前访问网站的用户身份,记录相关用户信息。
messages:消息提示功能。
staticfiles:查找静态资源路径。
app_demo:是我自己创建的APP(就上面那个。。。)
默认已有 如果没有只要添加app名称即可 例如: ‘app_demo’
新建的应用都要在这里添加

MIDDLEWARE:中间件

在这里插入图片描述
这是我们要使用的中间件的列表
django的中间件,自己写的中间件要在这里填写路径注册,才会生效
例如在项目中的md文件夹下md.py文件中的M1与M2两个中间件
注意:自己写的中间件,配置要写在系统中的后面

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' ,
  'md.md.M1' ,
  'md.md.M2' ,
]

这里暂时默认设置,后期如果真需要添加其他中间件再改这里

ROOT_URLCONF:根urls

主路由,也就是项目的主urls(根urls),表明Django主路由的位置
表示根URLconf的完整Python导入路径的字符串
默认值

TEMPLATES:模板

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [BASE_DIR / 'templates']
        ,
        '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',
            ],
        },
    },
]

指定模板配置信息
这是对我们的template的选项,template用于存放我们的html文件。详细的选项可以参照DjangoTemplates官方文档

WSGI_APPLICATION:配置Django项目的WSGI服务路径

正式启动的时候会用

DATABASES:数据库

主要用于数据库的相关配置
如果使用django的默认sqlite3数据库则不需要改
如果使用mysql数据库需要将上述数据库注掉修改如下
(我比较喜欢使用MySQL)

DATABASES =  {
  'default' : { 
  'ENGINE' : 'django.db.backends.mysql' ,
  'NAME' : 'blog' , #你的数据库名称 数据库需要自己提前建好
  'USER' : 'root' , #你的数据库用户名
  'PASSWORD' : '', #你的数据库密码
  'HOST' : '', #你的数据库主机,留空默认为localhost
  'PORT' : '3306' , #你的数据库端口
  }
}

AUTH_PASSWORD_VALIDATORS:启用密码验证

用于检查用户密码强度的验证器列表,在为空的情况下就接受任意强度的用户密码

LANGUAGE_CODE:语言

中文: LANGUAGE_CODE = ‘zh-hans’
Django项目的语言代码,默认值为en-us也就是英语,这里我选择的是zh-hans也就是我们的汉语。选择之后Django的admin界面就将变为汉语。

TIME_ZONE:时区

时区,默认值是UTC。当USE_TZ为TRUE时,无论TZ设置为何值Django都会使用系统默认的时区,例如要使用上海的时区则需将USE_TZ=FALSE,TIME_ZONE=‘Asia/Shanghai’
世界标准时区:TIME_ZONE = ‘UTC’

USE_I18N:国际化

Django允许开发者指定要翻译的字符串,也可以让访问者进行语言选择

USE_L10N

是否选择启用数据的本地化
如果USE_L10N设置为True,则区域设置指定的格式具有更高的优先级
admin 的时候想显示格式化时间,必须把 USE_L10N = False

USE_TZ:系统时区

TimeZone,如果开启了Time Zone功能,则所有的存储和内部处理,甚至包括直接print显示全都是UTC的。只有通过模板进行表单输入/渲染输出的时候,才会执行UTC本地时间的转换

STATIC_URL

静态目录的所有文件,存放css,js等文件

STATICFILES_DIRS

将我们自己的static文件加入static路径

DEFAULT_AUTO_FIELD

与STATIC_URL类似,存放用户上传的文件
在这里插入图片描述

session存储的相关配置
数据库配置(默认)

Django默认支持Session,并且默认是将Session数据存储在数据库中,即:django_session 表中。
配置 settings.py
  SESSION_ENGINE =  'django.contrib.sessions.backends.db'  # 引擎(默认)
  SESSION_COOKIE_NAME = "sessionid"    # Session的cookie保存在浏览器上时的key,即:sessionid=随机字符串(默认)
  SESSION_COOKIE_PATH = "/"     # Session的cookie保存的路径(默认)
  SESSION_COOKIE_DOMAIN =  None     # Session的cookie保存的域名(默认)
  SESSION_COOKIE_SECURE =  False     # 是否Https传输cookie(默认)
  SESSION_COOKIE_HTTPONLY =  True     # 是否Session的cookie只支持http传输(默认)
  SESSION_COOKIE_AGE =  1209600     # Session的cookie失效日期(2周)(默认)
  SESSION_EXPIRE_AT_BROWSER_CLOSE =  False    # 是否关闭浏览器使得Session过期(默认)
  SESSION_SAVE_EVERY_REQUEST =  False    # 是否每次请求都保存Session,默认修改之后才保存(默认)

缓存配置
COOKIE与SESSION设置

配置 settings.py
  SESSION_ENGINE =  'django.contrib.sessions.backends.cache'  # 引擎
  SESSION_CACHE_ALIAS =  'default'     # 使用的缓存别名(默认内存缓存,也可以是memcache),此处别名依赖缓存的设置
  SESSION_COOKIE_NAME = "sessionid"    # Session的cookie保存在浏览器上时的key,即:sessionid=随机字符串
  SESSION_COOKIE_PATH = "/"     # Session的cookie保存的路径
  SESSION_COOKIE_DOMAIN =  None     # Session的cookie保存的域名
  SESSION_COOKIE_SECURE =  False     # 是否Https传输cookie
  SESSION_COOKIE_HTTPONLY =  True     # 是否Session的cookie只支持http传输
  SESSION_COOKIE_AGE =  1209600     # Session的cookie失效日期(2周)
  SESSION_EXPIRE_AT_BROWSER_CLOSE =  False    # 是否关闭浏览器使得Session过期
  SESSION_SAVE_EVERY_REQUEST =  False    # 是否每次请求都保存Session,默认修改之后才保存
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十七光年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值