1.介绍

BASE_DIR 

默认值:os.path.dirname(os.path.dirname(os.path.abspath(__file__)))。

这个是Django项目文件夹所在目录得绝对路径DEBUG

DEBUG

默认值是True。

在本地开发测试环境下设置DEBUG=True可以显示bug信息,便于开发者找出代码错误所在。

当你在部署项目在生产环境时,请切记设置DEBUG=False。

因为生成环境下打开Debug会暴露很多敏感设置信息(比如数据库密码)。

注意1: 当你设置DEBUG=False, 你一定要设置ALLOWED_HOSTS选项, 否则会抛出异常。

注意2:当你设置DEBUG=False,静态文件将无法访问,因为django的wsgiref无法处理静态文件

ALLOWED_HOSTS

默认值为空[]。配置允许哪些ip访问的 ,* 代表允许所有的

设置ALLOWED_HOSTS是为了限定用户请求中的host值,以防止黑客构造包来进行头部攻击。该选项正确设置方式如下:

  • DEBUG=True:  ALLOWED_HOSTS可以为空,也可设置为['127.0.0.01', 'localhost']

  • DEBUG=False: ALLOWED_HOSTS=['46.124.78.xx', 'www.bat.com','127.0.0.1']

当你关闭DEBUG时,HOST一般为服务器公网IP或者注册域名。 当你还需要使用子域名时,你可以用'.bat.com'。它将匹配bat.com, www.bat.com和news.bat.com。

在正式部署项目时,请尽量不要设置ALLOWED_HOSTS=['*']。

SECRET_KEY

SECRET_KEY是Django根据自己算法生成的一大串随机数,本质是个加密盐,用于防止CSRF(Cross-site request forgery)跨站请求伪造攻击。

当部署Django项目到生产环境中时,Django文档建议不直接在settings.py里输入字符串,而是采取下面两种方法读取SECRET_KEY。

# 方法一: 从环境变量中读取SECRET_KEY
import os
SECRET_KEY = os.environ['SECRET_KEY']# 方法二: 从服务器上Django项目文件价外的某个文件读取
with open('/etc/secret_key.txt') as f:SECRET_KEY = f.read().strip()

INSTALLED_APPS

INSTALLED_APPS =

[  
 
'django.contrib.admin',           // 管理后台应用  
 
'django.contrib.auth',            // 用户身份认证 
 
 'django.contrib.contenttypes',    // 追踪ORM模型与应用的对应关系  
 
'django.contrib.sessions',        // session应用  
 
'django.contrib.messages',        // 消息应用  
 
'django.contrib.staticfiles',     // 管理站点静态文件  
 
'app1.apps.App1Config',   # 默认已有 如果没有只要添加app名称即可 例如: 'app1'  
 
# 新建的应用都要在这里添加

]

AUTH_USER_MODEL

# 注册自定义用户模型,格式:“app应用名.表名称”
# 告诉django,不要在生成user表,用用户自定义的表
AUTH_USER_MODEL = 'users.User'

MIDDLEWARE(中间件列表)

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

TEMPLATES

TEMPLATES = [{   # 基础模板'BACKEND': 'django.template.backends.django.DjangoTemplates',# 全局模板,查找顺序 全局--->每一个app(static的查找顺序也是)'DIRS': [BASE_DIR, 'templates'],'APP_DIRS': True,# 选项'OPTIONS': {# 上下文处理器,作用:全局都可以拿到这个变量,例如在模板里面拿到request,user'context_processors': ['django.template.context_processors.debug','django.template.context_processors.request','django.contrib.auth.context_processors.auth','django.contrib.messages.context_processors.messages',],},},
]

ROOT_URLCONF

指定项目的根URL patterns配置文件

DATABASES(数据库配置)

DATABASES是一个字典,包含不同名称的数据库及其具体配置,必须始终有一个名称为default的数据库,默认使用SQLite数据库

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

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

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

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

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

mysql数据库连接

由于mysql默认引擎为MySQLdb,而mysqldb在python3支持不是很好,一般使用pymysql代替。在__init__.py文件中添加下面代码,__init__.py和setting.py 同一目录

import pymysqlpymysql.install_as_MySQLdb()

settings.py

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

STATIC_ROOT和STATIC_URL和STATICFILES_DIRS

STATIC_ROOT

当你运行"python manage.py collectstatic"命令的时候,Django会将各app下所有名为static的文件夹及其子目录复制收集到STATIC_ROOT。把静态文件集中一起的目的是为了更方便地通过Apache或Nginx部署

STATIC_URL

这个选项是关于静态文件(如CSS, JS,和图片)的最重要的设置,一般设置如下。STATIC_URL是静态文件URL,设置后可以通过使用{% static 'img/xxx.jpg' %}方式直接访问/static/文件夹里的静态文件。

STATICFILES_DIRS

1. 绝对路径(static/image/1.png),必须开放static路径

2. 一般情况下我们会尽量把静态文件只放在static文件夹或它的子目录下,所以上述两个设置对于一般项目是够的。那么问题来了,如果你还有一些文件夹中也有静态文件,可是文件夹并不是以static命名也不在static子目录里,此时你也希望搜集使用那些静态文件,你该怎么办呢?这时我们就要设置静态文件目录STATICFILES_DIRS值了。

3. 默认值为空。当你设置该选项后,"python manage.py collectstatic"命令会把static文件夹及静态文件目录STATICFILES_DIRS里的静态文件都复制到一份到STATIC_ROOT。比如下例中Django会将下面两个文件夹内容也复制到STATIC_ROOT。注意里面的路径必需是绝对路径哦。

方式一:


# 设置django的静态文件目录
STATICFILES_DIRS = [os.path.join(BASE_DIR,"static")
]

方式二

STATICFILES_DIRS = ["/home/user/pictures","/opt/webfiles/myfiles",
]

MEDIA_ROOT和MEDIA_URL

media文件价一般用于放置用户上传的文件。对于此文件夹的权限设置异常重要,因为用户可能会上传可执行的文件,影响网站和服务器的安全。

# 上传图像配置
# 项目中存储上传文件的根目录[暂时配置],注意,uploads目录需要手动创建否则上传文件时报错
MEDIA_ROOT = os.path.join(BASE_DIR, "uploads")
# 访问上传文件的url地址前缀(默认找到MEDIA_ROOT,跟static一样)
MEDIA_URL = "/media/"

国际化(语言与时间)

LANGUAGE_CODE = 'zh-Hans'  # 设置语言,'en-us':英文,'zh-Hans':中文TIME_ZONE = 'Asia/Shanghai'    # 设置时区,'UTC':标准时区 格林威治时间,'Asia/Shanghai':亚洲上海时区USE_I18N = TrueUSE_L10N = TrueUSE_TZ = False  # 设置是否使用标准时区时间,我们设置为False  不适用标准时区

邮箱服务配置

EMAIL_HOST = 'smtp.qq.com'   # 发送者邮箱服务器EMAIL_PORT = 25 # 端口
EMAIL_HOST_USER = ''        # 发送者用户名(邮箱地址)
EMAIL_HOST_PASSWORD = ''    # 发送者密码
EMAIL_USE_SSL = TrueDEFAULT_FROM_EMAIL = 'xxx@qq.com'

COOKIE与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,默认修改之后才保存(默认)

缓存

(46条消息) Redis在django缓存(Django-redis)的步骤_骑台风走的博客-CSDN博客https://blog.csdn.net/qq_52385631/article/details/126510788?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166350100016782414953436%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=166350100016782414953436&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-126510788-null-null.nonecase&utm_term=%E7%BC%93%E5%AD%98&spm=1018.2226.3001.4450

文章参考

Django基础(25):settings.py设置选项深入解读。大江狗精品原创。 (qq.com)

(36条消息) 静态文件夹static路径开放(django)_骑台风走的博客-CSDN博客_django static路径

(36条消息) [django] 静态文件STATICFILES_DIRS_Moke丶青的博客-CSDN博客_staticfiles

(35条消息) Django settings配置详解_叮叮叮会过去的的博客-CSDN博客_django setting

Django基础篇 01- 初识Django - 捞铁 - 博客园 (cnblogs.com)

(37条消息) django-图片上传-media图像配置(后端)_骑台风走的博客-CSDN博客

(37条消息) Django下MEDIA_ROOT, MEDIA_URL, STATIC_ROOT, STATIC_URL解惑_圣迪的博客-CSDN博客 (46条消息) Redis在django缓存(Django-redis)的步骤_骑台风走的博客-CSDN博客

django的settings配置详解相关推荐

  1. django配置环境linux,linux环境下Django的安装配置详解

    linux环境下Django的安装配置详解 1. 下载安装Django pip install Django==1.6.5 测试是否安装成功 >>> import django> ...

  2. Maven settings.xml配置详解

    首先:Maven中央仓库的搜索全部公共jar包的地址是,http://search.maven.org/ ===Maven基础-默认中央仓库============================== ...

  3. Maven的settings.xml配置详解

    Maven的settings.xml配置详解 1 基本介绍 maven的两大配置文件:settings.xml和pom.xml.其中settings.xml是maven的全局配置文件,pom.xml则 ...

  4. 怎么创建python django项目_创建Django项目图文实例详解

    本文实例讲述了创建Django项目的方法.分享给大家供大家参考,具体如下: 创建Django项目 创建一个HelloDjango项目 GitHub地址:https://github.com/liang ...

  5. vscode中setting.json配置详解

    vscode中的setting.json配置文件配置详解 话不多说上配置文件 大家按需复制到自己的setting.json配置文件中即可 [{// 控制是否在编辑器中显示 CodeLens." ...

  6. elasticsearch-.yml(中文配置详解)

    此elasticsearch-.yml配置文件,是在$ES_HOME/config/下 elasticsearch-.yml(中文配置详解) # ======================== El ...

  7. maven之setting.xml的配置详解

    文件存放位置 全局配置: ${M2_HOME}/conf/settings.xml 用户配置: ${user.home}/.m2/settings.xml note:用户配置优先于全局配置.${use ...

  8. Maven系列--setting.xml 配置详解

    文件存放位置 全局配置: ${M2_HOME}/conf/settings.xml 用户配置: ${user.home}/.m2/settings.xml note:用户配置优先于全局配置.${use ...

  9. SpringBoot的配置详解application

    SpringBoot的配置文件application有两种文件格式,两种配置的内容是一致的,只是格式不一致. 1.application.properties 2.application.yml或者a ...

最新文章

  1. There was a problem confirming the ssl certificate ……
  2. Java字符串处理技巧
  3. sql中小数位四舍五入控制
  4. 2017蓝桥杯省赛---java---B---1(购物单)
  5. 【C语言进阶深度学习记录】二十五 指针与数组的本质分析二
  6. MySQL 事务的面试题总结
  7. java设置等待锁的时间_java的锁池和等待池
  8. nginx做https跳转apache
  9. python美股财务数据曝光_python实现美股日k线数据获取
  10. PLAY2.6-SCALA(五) Action的组合、范围的设置以及错误的处理
  11. android studio for android learning (十八) android事件监听器绑定的方法详解
  12. Visual Basic(VB6.0)精简版
  13. spring boot: Whitelabel Error Page的解决方案 --转载https://blog.csdn.net/sinat_31270499/article/details/822
  14. php 左侧飘浮广告代码,JS随机漂浮广告代码具体实例
  15. 篮球图片html页面代码,教你用PS制作一个非常逼真的篮球图片
  16. Java Web --HTML(尚硅谷2022版Javaweb)
  17. 利用pytorch完成BP神经网络的搭建
  18. 什么是4D(DRG、DLG、DOM、DEM)数据?(转自gisriver的空间)
  19. matlab音乐合成报告,matlab音乐合成报告.doc
  20. 错误 C1083 无法打开包括文件: “corecrt.h”: No such file or directory

热门文章

  1. java两个List的交集,并集
  2. javascript 常用函数大全
  3. Node-RED教程
  4. 远程教学平台_关于远程教学
  5. 网络创业连载二:SEO让我做成一系列微生意
  6. react router
  7. select下拉框事件操作
  8. 改进蝙蝠优化算法python代码
  9. 图片,70后,你懂的
  10. 经纬度与高斯-克吕格平面坐标转换