Django框架的中的setting.py文件说明详解


Posted in Python onOctober 15, 2018

1.加载数据库,数据库的配置不能写死在seting.py文件中,下面的方式是读取另外一个文件,配置数据库:

config = ''
with open(os.path.join(BASE_DIR, 'config/config.json'), 'rt') as f:
  config = json.load(f)
 
DATABASES = {
  'default': {
    'ENGINE': 'django.db.backends.mysql',
    'NAME': 'szrqgl',
    'USER': config['db_user'],
    'PASSWORD': config['db_pwd'],
    'HOST': config['db_host'],
    'POST': config['db_port']
  }
}

上面的BASE_DIR一般使用的都是默认值,即:

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

具体操作是创建一个config文件夹,该文件夹和你这个项目包同级,然后在其下面创建一个config.json文件,文件内容如下:

{
 "db_user": "root",
 "db_pwd": "123456",
 "db_host": "127.0.0.1",
 "db_port": "3306"
}

在上面的代码中,ENGINE要说明一下,官方提供了针对不同数据库的的不同操作引擎,以下是经常用的几个:

 sqlite数据库:'django.db.backends.sqlite3', 

 postgreSQL数据库:'django.db.backends.postgresql_psycopg2',

 mysql数据库:'django.db.backends.mysql'

 oracle数据库:'django.db.backends.oracle'

2.时区设置和字符集设置,一般用的都是下面三个:

设置保存到数据库时间类型是否为UTC时间,如果不需要请设置为false,默认为true:USE_TZ = True

设置时区:TIME_ZONE = 'Asia/Shanghai'

设置语言:LANGUAGE_CODE = 'zh-hans'

设置字符集:DEFAULT_CHARSET = "utf-8"

3.设置国际化,根据个人需要进行设置:

国际化:USE_I18N = True

相同内容被不同时区地区的用户访问时,是否以不同格式内容展示(例如时间,日期,数字):USE_L10N = True

4.部署配置:

调试模式是否开启:DEBUG = True

访问web服务的的Ip配置:ALLOWED_HOSTS = ['*']

部署的时候请修改DEBUG和ALLOWED_HOSTS的值,一般将其修改为FALSE和指定ip,例如['127.0.0.1']

5.在setting.py中定义全局变量,该变量的变量名需要全部大写,否则会引用不到:

CONTEXTBOOL= False

6.app的安装配置,即INSTALLED_APPS设置,我们新建的项目需要添加到该配置下,每个配置的意义以后说明:

django.contrib.admin —— 管理站点。

django.contrib.auth —— 认证系统。

django.contrib.contenttypes —— 用于内容类型的框架。

django.contrib.sessions —— 会话框架,session数据可以在数据库中的django_session表中查看。

django.contrib.messages —— 消息框架。

django.contrib.staticfiles —— 管理静态文件的框架。

例如:

INSTALLED_APPS = [
  'django.contrib.admin',
  'django.contrib.auth',
  'django.contrib.contenttypes',
  'django.contrib.sessions',
  'django.contrib.messages',
  'django.contrib.staticfiles',
  'demo1',
]

7.django的中间件配置,即MIDDLEWARE设置,所谓中间件就是从用户请求到用户请求结束期间所做的操作,即用户的请求会次从上到下依次执行MIDDLEWARE中的配置,然后服务器响应用户的时候会再次从下至上依次执行,和Java的Filter很相像:

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',
]

一般的django配置如上图,如果需要自己添加中间件配置的,也可自己添加,这里不再多说。

8.setting中的加密盐:

SECRET_KEY = 'i&&2$s&#%7npev^#uix==kis+h$4$ozscefiaw1c%p^+1c(l&6'

该配置是django的安全配置,防止攻击用的,该值是startProject时用系统的某个算法产生的.

9.静态文件目录配置(重中之重)

# 所有静态文件放置目录,在配置nginx的时候,nginx的静态资源要指向这里。

STATIC_ROOT = os.path.join(BASE_DIR, 'static').replace('\\', '/')

# 别名,这个别名指的是在html引用的名称

STATIC_URL = '/commonstatic/'

例如,下面的这个static实际上就是commonstatic,其在html里面显示如下:

{% block styles %}
  <link rel="stylesheet" href="{% static '/plugins/bootstrapValidator/bootstrapValidator.min.css' %}" rel="external nofollow" >
{% endblock %}

Django框架的中的setting.py文件说明详解

# 在django中指定静态文件的目录所在地

STATICFILES_DIRS = (
  os.path.join(BASE_DIR, 'commonstatic/').replace('\\', '/'),
)

Django框架的中的setting.py文件说明详解

一般情况下,上述的静态文件配置上面几乎可通用,绝少数情况下需要另配。

10.session会话配置(下面的配置会保存在数据库的django_session中):

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 = 60 * 30 # Session的cookie失效日期(30min)(默认)
SESSION_EXPIRE_AT_BROWSER_CLOSE = True # 是否关闭浏览器使得Session过期(默认)
SESSION_SAVE_EVERY_REQUEST = True # 是否每次请求都保存Session,默认修改之后才保存(默认)

setting配置文件的内容大致如上,具体每个配置的作用会在以后的文章中进行说明!

 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Django使用Celery异步任务队列的使用
Mar 13 Python
Django重置migrations文件的方法步骤
May 01 Python
Python Flask 搭建微信小程序后台详解
May 06 Python
python单例模式的多种实现方法
Jul 26 Python
Python爬虫学习之获取指定网页源码
Jul 30 Python
PyTorch中Tensor的拼接与拆分的实现
Aug 18 Python
Python 剪绳子的多种思路实现(动态规划和贪心)
Feb 24 Python
解决django无法访问本地static文件(js,css,img)网页里js,cs都加载不了
Apr 07 Python
Python request操作步骤及代码实例
Apr 13 Python
Python txt文件常用读写操作代码实例
Aug 03 Python
python搜索算法原理及实例讲解
Nov 18 Python
Python WSGI 规范简介
Apr 11 Python
python得到电脑的开机时间方法
Oct 15 #Python
python得到单词模式的示例
Oct 15 #Python
详解python如何在django中为用户模型添加自定义权限
Oct 15 #Python
Python 实现某个功能每隔一段时间被执行一次的功能方法
Oct 14 #Python
Python 实现异步调用函数的示例讲解
Oct 14 #Python
python 异或加密字符串的实例
Oct 14 #Python
python实现换位加密算法的示例
Oct 14 #Python
You might like
常见的四种POST 提交数据方式(小总结)
2015/10/08 PHP
功能强大的PHP发邮件类
2016/08/29 PHP
关于Yii2框架跑脚本时内存泄漏问题的分析与解决
2019/12/01 PHP
Html5的placeholder属性(IE兼容)实现代码
2014/08/30 Javascript
两种方法基于jQuery实现IE浏览器兼容placeholder效果
2014/10/14 Javascript
基于JavaScript判断浏览器到底是关闭还是刷新(超准确)
2016/02/01 Javascript
window.close(); 关闭浏览器窗口js代码的总结介绍
2016/07/14 Javascript
JS匿名函数类生成方式实例分析
2016/11/26 Javascript
详解js中常规日期格式处理、月历渲染和倒计时函数
2016/12/28 Javascript
微信小程序支付之c#后台实现方法
2017/10/19 Javascript
浅析Javascript中双等号(==)隐性转换机制
2017/10/27 Javascript
vue 解决循环引用组件报错的问题
2018/09/06 Javascript
Nuxt.js之自动路由原理的实现方法
2018/11/21 Javascript
webpack4.x下babel的安装、配置及使用详解
2019/03/07 Javascript
从理论角度讨论JavaScript闭包
2019/04/03 Javascript
vue.config.js中配置Vue的路径别名的方法
2020/02/11 Javascript
使用Taro实现小程序商城的购物车功能模块的实例代码
2020/06/05 Javascript
Python实现检测服务器是否可以ping通的2种方法
2015/01/01 Python
Python pymongo模块常用操作分析
2018/09/01 Python
python与C、C++混编的四种方式(小结)
2019/07/15 Python
在Python3 numpy中mean和average的区别详解
2019/08/24 Python
Python连接Oracle之环境配置、实例代码及报错解决方法详解
2020/02/11 Python
基于python实现对文件进行切分行
2020/04/26 Python
python3 googletrans超时报错问题及翻译工具优化方案 附源码
2020/12/23 Python
CSS3制作日历实现代码
2012/01/21 HTML / CSS
基于css3 animate制作绚丽的动画效果
2015/11/24 HTML / CSS
HTML5视频支持检测(检查浏览器是否支持视频播放)
2013/06/08 HTML / CSS
利物浦足球俱乐部官方网上商店:Liverpool FC Official Store
2018/01/13 全球购物
个人简历自我评价八例
2013/10/31 职场文书
机电一体化毕业生求职信
2013/11/02 职场文书
出国英文推荐信
2014/05/10 职场文书
运动会广播稿50字-100字
2014/10/11 职场文书
保留意见审计报告
2015/06/05 职场文书
2016年“节能宣传周”活动总结
2016/04/05 职场文书
Python办公自动化解决world文件批量转换
2021/09/15 Python
Python字典的基础操作
2021/11/01 Python