首页>>后端>>Python->django如何更改时区(2023年最新整理)

django如何更改时区(2023年最新整理)

时间:2023-12-20 本站 点击:0

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

pythonmktime 函数 时区

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

1 数据库本身的时区

2 数据库里数据的时区

3 python代码里的时区

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

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

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

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

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

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

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

2)在 settings 的包中分别新建3个文件:公共基础 base.py (用于配置 Django 默认生成配置文件), develop.py (用于开发环境)、 product.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感知

结语:以上就是首席CTO笔记为大家整理的关于django如何更改时区的全部内容了,感谢您花时间阅读本站内容,希望对您有所帮助,更多关于django如何更改时区的相关内容别忘了在本站进行查找喔。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:/Python/46043.html