问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

django如何设置时区(2023年最新整理)

发布网友 发布时间:2024-10-01 11:54

我来回答

1个回答

热心网友 时间:2024-10-31 01:39

导读:今天首席CTO笔记来给各位分享关于django如何设置时区的相关内容,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

「Django框架」-拆分配置文件settings

使用Django命令生成一个项目的基本结构时,配置信息默认保存在和项目目录同名的目录下的settings.py文件里,在实际的开发中,对于一个项目而言,这样往往是不合适的,需要将settings配置文件拆分为几个文件,线上和线下都会使用的文件放置到base.py文件里,线上的放置在proct.py文件里,开发测试的文件放置在develop.py文件里。这样功能划分就明确了,方便我们线上线下的调试。

1)在项目同名目录下,创建一个settings的包(目录下含__init__.py的文件夹)。

2)在settings的包中分别新建3个文件:公共基础base.py(用于配置Django默认生成配置文件),develop.py(用于开发环境)、proct.py(用于生产环境)。

3)将原来的settings.py的内容复制到base.py文件中。

4)确认目录OK后,我们需要修改base.py中的时区和语言配置:

如果有类似公共部分需要修改的,则在base.py中修改即可,例如注册子应用之类的,在此就不一一举例。。

5)之后,对于线上线下不同部分,我们只要导入base.py模块,再针对不同部分进行修改即可,例如线上线下对接不同的测试数据库,我们则可以修改数据库连接:

6)修改manage.py文件,Django使用自带服务启动时需要知道settings文件的路径。

7)到上生产的时候,使用asgi.py(Django3.x中)或wsgi.py(Django2.x以下版本),则可以更改生产配置文件的路径:

以上又有个问题,如果线上线下环境切换,又要改动代码,我们可以通过设置系统环境变量来动态获取,避免修改代码:

这样通过读取系统环境变量中的LIPIN_PROFILE来控制Django加载不同的settings文件。

这样可以将原来的settings.py文件删掉!!

但是这样就会有个问题,你会发现之前好好的网页我们访问不了了,模板找不到!

这是因为之前的配置文件中,路径问题,因为我们原来的配置文件是在同名目录下,而我们现在将配置文件拆分为一个新的包,所以还要上一级目录才是我们需要的:

django-celery-beat时区问题

根据下文源码可得出在django的settings中配置DJANGO_CELERY_BEAT_TZ_AWARE参数可控制celery时间格式

查看celery文档

timezone='Asia/Shanghai'#时间取值时区

enable_utc=False#涉及时区的时候需要该参数

timezone_aware=False#关闭aware感知

求教Django中model类型为DateTimeField在查询时的问题

Django还有一些warning打印出来:/Users/jay/workspace/te/env/lib/python2.7/site-packages/django/db/models/fields/__init__.py:903:RuntimeWarning:DateTimeFieldTestSuite.update_timereceivedanaivedatetime(2014-06-1514:38:37.873873)whiletimezonesupportisactive.RuntimeWarning)

这个warning的原因是,Django配置为使用timezone的datetime格式,而datetime.now是不包含timezone信息的。

如果不需要在程序中特别处理时区(timezone-aware),在Django项目的settings.py文件中,可以直接设置为“USE_TZ=False”就省心了。然后,在models.py中简单的设置为“create_time=models.DateTimeField(auto_now_add=True)”和“update_time=models.DateTimeField(auto_now=True)”。

如果还要保持USE_TZ=True,则可设置为“default=datetime.now().replace(tzinfo=utc)”。

pythonmktime函数时区

这个问题得分成几个子问题

1数据库本身的时区

2数据库里数据的时区

3python代码里的时区

首先对1你可以通过命令去设置数据库的时区像mysql直接用sql语句就能设置

其次对2在存储时间时尽量用timestamp去存储这样读出来可以方便的转成所需用的时区的时间

3python自己的时区比如你用datetime生成时间时需要每次都记得时区设置在django和flask里设置好默认时区

做好这三点才能保证程序和数据库和数据的时区保持统一

结语:以上就是首席CTO笔记为大家介绍的关于django如何设置时区的全部内容了,希望对大家有所帮助,如果你还想了解更多这方面的信息,记得收藏关注本站。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
华为手机删除qq聊天记录还能恢复吗 曙光英雄怎么登录以前的账号,曙光英雄曙光英雄客户端在哪里下载? 曙光英雄怎么注销账号 详细注销方法分享 曙光英雄怎么注销账号-账号注销方法介绍 六大茶类之青茶知识大科普 六大茶类香气类型之青茶(乌龙茶)茶香 六大茶类之青茶 简单认识六大茶类之青茶 一文带你全面认识六大茶类中的青茶,速来围观 识茶笔记:六大茶类之青茶篇 django如何配置环境变量(2023年最新分享) CA6140车床操作说明书怎么写? 仙罡大陆传奇手游 仙罡大陆传奇手游如何下载 可以详细告诉我一下用美图秀秀做白底花字的过程么 ? 好爱你 ... 我是华为T8300手机,我把一个COM.OMS的文件给删了,怎么也恢复不了,求... 我的手机是华为t8300怎么把网络切换到TD网络,我和女朋友的是 VM虚拟机ping的问题 虚拟机和本机相互PING通 ...又写入dbConfig.properties(数据库配置文件)java源代码? i+didn't+see+nobody+in+the+classroom修改病句? 学做蛋糕有哪些注意事项? is there anyone in the classroom ?的回答是no one还是"none"或者别... 烘焙蛋糕需要注意哪些细节问题? Is there anyone in the classroom? No,___ A.Jim is in the classroom... 烘焙蛋糕需要注意哪些问题? 养老保险买多少年最划算? 交养老保险交多少钱最划算? 跪求psp模拟ps游戏:假面骑士古迦!!!请求游戏机江湖上的大哥帮帮我这假 ... 交养老保险交多少年最划算? 王皓宇人生格言 齐振兴经典语录 牟泰荣牟泰荣经典语录 袁传明经典语录 关于感恩的句子 300字左右 昆山市食品药品监督管理局其他事项 做人需要感谢的句子 昆山市卫生局的其他事项 昆山润华商业有限公司宁波北仑分公司怎么样? 昆山澄蟹阁蟹业有限公司怎么样? 金融类是干什么 金融都要干什么 金融是做些什么 写出带有新旧的四字词语 2022年济南趵突泉菊花展有多少个菊花品种 2022年江阴有菊花展吗 高尔夫7启动时制动助力受限怎么回事? 高尔夫7启动时制动助力受限 中石化桌面安全管理系统如何删除? sd卡还有14G内存,可无法下载软件