首页 > 电视 > > 正文

当前速看:Django笔记三十九之settings配置介绍

2023-05-09 22:27:06 来源:博客园

本文首发于公众号:Hunter后端

原文链接:Django笔记三十九之settings配置介绍


(资料图片)

这一篇笔记介绍 Django 里 settings.py 里一些常用的配置项,这些配置有一些是在之前的笔记中有过介绍的,比如 logging 的日志配置,session 的会话配置等,这里就只做一下简单的回顾,有一些是之前没有介绍过的就着重介绍一下。

以下是本篇笔记目录:

邮箱配置允许访问地址配置数据库配置调试模式配置注册应用程序配置时区时间配置会话配置其他配置1、邮箱配置

在前一篇笔记发送邮件的介绍中,有过详细的介绍,比如 EMAIL_BACKEND,EMAIL_HOST 等,这里额外再介绍一个参数 ADMINS

这个参数其实在第三十篇笔记 log 日志记录中有过介绍,当我们设置的日志发送邮件模块有指定等级的日志发生时,会将邮件发送至 ADMINS 中定义的收件人列表。

这个参数是一个列表,每个元素也是一个元组或列表,第一个参数为收件人的名称,第二个为收件人邮箱:

ADMINS = [    ("Hunter", "120460xxx@qq.com"),]
2、允许访问地址配置

我们的系统是可以设置允许访问的地址的,可以设置域名或者 IP,比如:

ALLOWED_HOSTS = ["192.168.1.9"]

这个参数的默认值为空列表,则说明只允许该系统所在的服务器地址的其他服务可以访问到 Django 服务。

如果想设置所有地址都可以访问到我们的服务,可以如此设置:

ALLOWED_HOSTS = ["*"]
3、数据库配置

前面连接数据库的时候,没有做过多的介绍,都是直接使用,这里再做一下详细的介绍,以下是一个示例:

DATABASES = {    "default": {        "ENGINE": "django.db.backends.mysql",        "HOST": "192.168.1.31",        "NAME": "func_test",        "USER": "root",        "PASSWORD": "123456",        "PORT": 3306,        "OPTIONS": {},        "TEST": {},    },}

在 DATABASES 中,必须设置一个 default 数据库,也可以在里面添加其他数据库连接,比如之前的多数据库连接操作的笔记示例

其中,ENGINE表示连接的数据库类型,这里我们设置的是 MySQL,也可以设置成 postgresql,oracle,sqlite3。

这里我们连接使用的都是 MySQL,所以下面的配置项都是基于 MySQL 做的介绍。

HOST表示连接数据库的主机

NAME表示要使用的数据库名称,比如我们这里 MySQL 的 func_test。如果使用的是 SQLite,那么这个地址应该是一个完整路径,下面是一个使用 SQLite 作为数据库的示例:

DATABASES = {    "default": {        "ENGINE": "django.db.backends.sqlite3",        "NAME": "/Users/hunter/…/sqlite3.db"    }}

USER表示的是连接 MySQL 用到的用户名

PASSWORD则是密码

PORTMySQL 一般是 3306,如果是映射的其他端口改成其他端口即可

CONN_MAX_AGE

还有一个参数为 CONN_MAX_AGE,表示一个数据库连接的寿命,以秒为整数,默认为 0,表示每次数据库请求结束之后即关闭数据库连接。

如果设置为 60,那么数据库连接在开启之后 60s 即关闭此连接,在此期间,其他请求可以复用此连接。

如果设置为 None,则表示一直处于连接状态。

OPTIONS

是用于添加连接数据库时额外的参数,比如我们的 MySQL 的连接配置不直接在 DATABASES 中定义,而是通过配置文件的方式使用,如下官方文档的一个使用示例:

# settings.pyDATABASES = {    "default": {        "ENGINE": "django.db.backends.mysql",        "OPTIONS": {            "read_default_file": "/path/to/my.cnf",        },    }}# my.cnf[client]database = NAMEuser = USERpassword = PASSWORDdefault-character-set = utf8

这里的意思是,DATABASES 里的 default 数据库连接使用的都是 my.cnf 里的配置选项

如果同时我们在 DATABASES["default"] 中也配置了 NAME,USER,PASSWORD 等参数,连接应该以哪个为准呢?

是以 OPTIONS 里的参数为准,这里默认的读取配置顺序是 OPTIONS > NAME, USER, PASSWORD, HOST, PORT

我们还可以在 OPTIONS 里设置数据库的隔离等级:

* "read uncommitted" 读未提交* "read committed" 读已提交* "repeatable read" 可重复读* "serializable" 串行化
TEST

TEST 参数默认也是一个空 dict,之前在单元测试那篇笔记中有过介绍,可以设置测试数据库的字符集编码,指定测试数据库名称等信息,示例如下:

DATABASES = {    "default": {        ...        "TEST": {            "CHARSET": "utf8",            "NAME": "test_default_db",        },    }}
4、调试模式配置

我们通过 settings 中的 DEBUG 参数来控制 Django 系统是否处于调试模式,DEBUG=True则表示系统处于调试模式。

注意:永远不要在 DEBUG=True 的情况下将网站部署到生产环境

调试模式的主要功能之一就是显示详细的错误页面,比如在 DEBUG=True 的情况下,如果我们的接口发生异常,Django会显示一个详细的回溯,比如下面的信息:

而如果我们设置 DEBUG=False,显示的信息就会如下:

返回给前台的就是一个简单的错误页面,而不是像上面一样暴露出详细的文件路径和错误信息

5、注册应用程序配置

INSTALLED_APPS,列表参数,元素是在这个 Django 系统中被启用的应用程序。

这个参数包含了 Django 系统初始化时候的一些配置类应用程序,比如 django.contrib.admin, django.contrib.sessions 等

也包含我们创建的 application,比如我们创建了一个名为 blog 的 application,就可以在其中添加 "blog.apps.BlogConfig" 才可以被系统检测到

6、时区时间配置

时区的设置与 settings.py 里的两个参数相关,一个是 TIME_ZONE,一个是 USE_TZ

TIME_ZONE 表示是时区,USE_TZ 表示是否默认是使用时区感知

我们获取当前时间有两个方式,一个是通过 datetime,一个是通过 django.utils.timezone 获取:

import datetimeprint(datetime.datetime.now())from django.utils import timezoneprint(timezone.now())

如果设置 USE_TZ = True,不管 TIME_ZONE 设置的时区是哪个,timezone.now() 输出的永远是 UTC 时间,也就是格林威治时间,也就是比我们现在要早八个小时的时间

而 datetime.datetime.now() 则是会根据 TIME_ZONE设置的时区显示时间,比如设置为 “Ameraica/Chicago” 则会比格林威治时间早六个小时,比我们当前时间早14个小时

但是我们存储到数据库的时间是使用 timezone 的时间的,所以这个设置不太对的。

如果想要存储到数据库的时间和我们本地的时间一致,我们需要设置 USE_TZ 为 False,且设置 TIME_ZONE 的值为我们当前时区东八区的时区,这样,这两个输出的时间值就一致了,且数据库中存储的值也是与我们当前时间一致:

# settings.pyTIME_ZONE = "Asia/Shanghai"USE_TZ = Falseimport datetimefrom django.utils import timezoneprint(datetime.datetime.now())print(timezone.now())# 2023-02-26 22:33:00.442966# 2023-02-26 22:33:00.442982
7、会话配置

session 相关的配置在第三十二篇笔记的时候有过详细介绍,这里只做一个索引介绍

SESSION_COOKIE_AGE

session 过期时间,以秒为单位

SESSION_COOKIE_NAME

用于会话的 cookie 的名称,默认为 sessionid,可在 settings.py 中自定义修改

SESSION_ENGINE

控制 Django 存储会话数据的地方,默认值为 "django.contrib.sessions.backends.db",也就是数据库,django_session 这张表。

我们还在缓存那篇笔记中有过介绍如何将 session 存储到 Redis 缓存中,这里不重复介绍了。

8、其他配置

还有一些配置,比如 日志配置 LOGGING,中间件配置 MIDDLEWARE 等,都在日志笔记,中间件笔记中都有过介绍,这里就不再赘述了。

这里介绍一下如何访问 settings 中的配置,可以通过文件路径的形式访问,也可以通过 django.conf 访问:

from hunter import settingsprint(settings.DATABASES)from django.conf import settingsprint(settings.DATABASES)

这里,hunter 为我们系统的名称,所以在系统根目录下,hunter/ 也是 settings.py 文件的上层文件夹。如果想获取更多后端相关文章,可扫码关注阅读:

标签:

当前速看:Django笔记三十九之settings配置介绍

本文首发于公众号:Hunter后端原文链接:Django笔记三十九之settings配置介绍这一篇笔记介绍Django里settin

2023-05-09 22:27:06

膨胀螺栓国家标准什么时候出来的-膨胀螺栓国家标准_全球即时看

1、膨胀螺栓各种规格都有对应的负载能力,用时可根据要求的负载来选规格大小。2、见下图:碳钢螺栓的等级分

2023-05-09 21:54:33

2023青岛浮山森林公园开放了吗? 全球热资讯

青岛浮山森林公园4月27日,浮山森林公园正式对市民开放,紧接着的“五一”假期,让其成为岛城市民、来青...

2023-05-09 21:11:19

北方或迎今年首轮高温 南海夏季风下周爆发?-天天短讯

​北方或迎今年首轮高温南海夏季风下周爆发?

2023-05-09 20:27:24

热评丨小小快递,折射“流动中国”的信心与力量

快递你肯定收过,但你收过无人机送来的快递吗?近日,深圳南山区开通了国内首条无人机常态化景区航线。游客

2023-05-09 19:51:25

拼多多叠加券如何使用?怎么凑单?

​现在拼多多上有着比较多的优惠券可以领取,消费者在购物的过程中,会需要领取相关优惠券,下单后能够使用

2023-05-09 19:03:17

金玫瑰的花语是什么(金玫瑰的花语是什么)

1、金玫瑰的花语是珍重祝福、嫉妒失恋,在爱情里面它代表的含义并不好,代表着再见、消逝的爱、为爱道歉,

2023-05-09 18:29:10

衡阳钢管厂半夜丢钢管扰民 时快讯

衡阳钢管厂半夜丢钢管扰民投诉直通车是湖南日报、华声在线、新湖南主办的投诉维权类栏目,帮助解决网上投诉,

2023-05-09 18:11:30

环球聚焦:提振市场信心 中交REIT获基金管理人3000万自购

首单央企高速公路REIT华夏中国交建(601800)REIT(简称“中交REIT”,基金代码:508018)再传新动向。5月9日

2023-05-09 17:41:21

溧水区举行见义勇为奖励座谈会 世界热文

5月8日上午,区见义勇为基金会举行见义勇为奖励座谈会。座谈会上,区见义勇为基金会负责人分别为见义勇为人

2023-05-09 16:57:51

环球报道:湖南省各校高考分数线 湖南省2021年高考分数线

今天,大学路小编为大家带来了湖南省各校高考分数线湖南省2021年高考分数线,希望能帮助到广大考生和家长,

2023-05-09 16:34:20

热文:普京:一些西方国家挑起冲突,破坏传统价值观,迫使别人接受所谓“规则”

据俄新社最新报道,普京在讲话时批评称,一些西方国家挑起冲突和政变、传播反俄情绪和“具有挑衅性的民...

2023-05-09 16:04:43

婚礼策划师要学什么才能胜任_婚礼策划师要学什么

1、婚礼策划师要策学划书写作,花艺,色彩搭配,顾客心理等。2、婚礼策划师是易学难精的职业,硬性门槛虽不

2023-05-09 15:33:55

容大感光(300576.SZ):未来将会在稳固PCB光刻胶销售额的基础上,加大对显示用光刻胶、半导体光刻胶及PCB感光干膜的业务拓展力度 环球快播

格隆汇5月9日丨容大感光于2023年5月8日15:00-17:00召开业绩说明会,交流环节中,就“公司目前的产品线有哪

2023-05-09 14:42:27

债务人私自扣押债权人的车辆合法吗|新消息

债权人私自扣押债务人车辆的行为不合法。债权人如果想要扣押债务人的车辆扣押与债务人签订抵押合同。如果债

2023-05-09 14:02:48

华汇大厦_华侨城大厦

1、华侨城大厦项目建设用地面积为141107平米,总建筑面积189100平米,其中计容积率建筑面积151100平米。2、

2023-05-09 13:24:21

美移民限制令将解除:8万人涌入边境 得州多市宣布进入“紧急状态”

海外网5月9日电据美国《纽约邮报》当地时间5月8日报道,美国限制非法移民“第42条边境条款”将在5月11...

2023-05-09 12:49:29

宜春经济开发区属于哪个区_宜春经济开发区

1、宜春经济开发区位于宜春市区北郊,距市中心5公里,处在320国道与沪昆高速公路交汇处。2、2003年9月动工

2023-05-09 12:02:47

天天滚动:CARIAD软件,真的要为大众的销量负全责吗?

另一位在大众品牌任职的软件工程师说:“长期以来,大众都是自上而下的国企模式,他们很多的核心业务都...

2023-05-09 11:50:08

沪铅市场交投转淡 短期锌价或震荡偏弱整理

【资讯】1 据调研显示,2023年4月全国电解铅产量为31 54万吨,环比下滑2 43%,同比上升16 17%;2023年1-4月

2023-05-09 11:29:37

江西万载:家校社协同育人促乡村教育振兴

在5月1日举行的江西省青少年象棋锦标赛上,江西省宜春市万载县鹅峰乡中心小学派出4名选手参赛,荣获“团...

2023-05-09 11:04:05

市场向左,蔚来向右!

5月成为蔚来换代期的关键分水岭,成败在此一举。

2023-05-09 10:55:11

宝可梦朱紫攻略_baoke-每日信息

1、KINBOR、辉柏嘉、童鸽、宝克BAOKE、幸利、金万年、至尚创美、KAKAOFRIENDS、premec、太萌兔。

2023-05-09 10:20:14

欧冠席位已定8席:阿森纳时隔6年回归 巴萨拜仁在列 每日简讯

北京时间5月9日消息,目前欧洲五大联赛和欧战都已经进入尾声阶段,下赛季欧冠名额也逐渐出炉。根据统计,目

2023-05-09 09:53:38

中国银行、民生银行等25股获融资净买入超亿元

证券时报网讯,据wind统计显示,5月8日共有1601只个股获融资净买入,净买入金额在千万元以上的有319只。其中,25

2023-05-09 09:31:00

世界讯息:农行一季度县域贷款增量创新高

凯盛融英涉嫌危害国家安全被查处,曾冲刺港交所上市未果

焦点短讯!梅毒图片男性症状图片_男性梅毒初期症状

海正生材(688203)5月8日主力资金净卖出12.03万元 新动态

将成为市售高尔夫最强版本 大众高尔夫R 333限量版将于5月31日发布|观速讯

保住全球“饭碗”须各国共同努力-今日热搜

环球快资讯丨市创卫办公布4月份巩固国家卫生城市创建成果第三方暗访结果

世界看点:快评:中美何时高层对话 看美方如何行动

环球新动态:千纸鹤的寓意是什么啊_千纸鹤的寓意是什么

三亚市海棠区政务服务大厅新增129项户政审批事项 世界今日报

网红饮品接连翻车,危害食品安全的“老赖”不能做_全球热推荐

智能手机是Banggood春季促销中最受欢迎的类别之一 新消息

2023年夏天会不会极度炎热(2023年夏天会不会那么高)

华为夏季发布会官宣:新MateBook要来啦 当前播报

*ST文化:深交所拟决定终止公司股票上市交易

快克智能:拟10亿元投建半导体封装设备研发及制造项目 焦点速递

当前信息:解析两次世界性粮食危机

全球观天下!广府新语|建设国际消费中心城市的思路与对策

桂圆枸杞红枣泡酒能长时间存放吗?

玉环举办第二届木球锦标赛

性书大亨_关于性书大亨的介绍

苹果季度营收罕见连续下滑,苹果吸金效应还能持续多久?

天风证券给予中信博买入评级 市场回暖下支架需求持续提升 BIPV业务开始发力

视点!云南女大学生被害案主犯被执行死刑,被害者家属:终于给了女儿一个交代

【环球快播报】资质代办是什么?为什么要找资质代办?

x 广告
x 广告

Copyright @  2015-2022 亚洲家电网版权所有  备案号: 豫ICP备20022870号-9   联系邮箱:553 138 779@qq.com