python – Django Timezone混乱; Postgres和Apache
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – Django Timezone混乱; Postgres和Apache,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2306字,纯文字阅读大概需要4分钟。
内容图文
![python – Django Timezone混乱; Postgres和Apache](/upload/InfoBanner/zyjiaocheng/775/e98439edd53c475685f8204365a9901c.jpg)
设置:Django上的多个站点位于同一组服务器上,由同一组Apache进程提供服务.有些地方是东部TZ;有些是中环.数据库是在单独的服务器上运行的PSQL.
当我开始时,我没有考虑各个网站如何处理时区;我想我在Django中看到了TIMEZONE设置并且只是认为它”处理它’.现在我看到了裂缝.
第一个问题:时区似乎在东部和中部之间来回翻转.我在这个网站上搜索的理解是,因为TZ的os environ var被设置为Apache进程,这取决于它处理请求的Django站点,以及该进程是否处理了另一个站点的请求. TZ,时区错了.我相信我在这里找到的解决方案是不同时区的网站需要有不同的流程组来为它们服务.请更正错误.
第二个问题:在Linux上本地,我用我的一个中心时间网站(我在东部)做了一个./manage.py运行服务器.我创建了一个资产,其发布日期在管理员中正确显示为一小时.查看实际的PostgresSQL条目,发布日期的时区仍然列为-04. Postgres只使用服务器/计算机本身的时区而忽略Django中的任何TZ设置吗?因此,东部时间保存在Postgres服务器上的所有条目将显示为-04或-05,具体取决于夏令时?
如果其他人处理过类似的事情,建议表示赞赏.即使我拆分了中心站点的Apache进程,使得他们的TZ设置没有交叉,我仍然有Postgres问题需要处理.然后我很好奇;如果PSQL时间戳是Central,而TZ设置是Eastern,那么,datetime字段是否考虑了TZ?也就是说,如果您在Django设置为EST时执行datetime.datetime.now(),并且它返回2:00 PM,那么您可以根据其发布日期小于该结果来过滤内容,它是否仅仅考虑TZ寻找发布时间是CST或更早的下午1:00的内容?
解决方法:
以下是Django和Postgres中时区处理的一些细节,但我强烈建议在后端专门处理UTC,并在向用户提供UTC时间戳时仅转换到前端的本地时区.在Python中,您可以通过datetime.datetime.utcnow()获取UTC的当前时间.我甚至将我的服务器放在UTC时区,但这并非绝对必要.
多个时区在Django中不能很好地工作;请参阅this ticket. Python标准库中的日期时间对象是时区,并且您需要像pytz这样的库来修复它,但据我所知,Django仍然会返回天真的日期时间对象,而不是您可以构建的时区感知对象与pytz.
Postgres会检查几个地方以确定时区,包括TZ环境变量,但是TZ必须在postgres过程的环境中:
PostgreSQL 8.5.3.时区
If timezone is not specified in
postgresql.conf nor as a postmaster
command-line switch, the server
attempts to use the value of the TZ
environment variable as the default
time zone. If TZ is not defined or is
not any of the time zone names known
to PostgreSQL, the server attempts to
determine the operating system’s
default time zone by checking the
behavior of the C library function
localtime(). The default time zone is
selected as the closest match among
PostgreSQL’s known time zones.
内容总结
以上是互联网集市为您收集整理的python – Django Timezone混乱; Postgres和Apache全部内容,希望文章能够帮你解决python – Django Timezone混乱; Postgres和Apache所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。