作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在部署 Django 应用程序后遇到了一些问题。我在 ubuntu 服务器上使用 Apache + mod-wsgi。在我重新启动服务器后一段时间,时间变得很糟糕,大约 -10 小时是错误的。我制作了一个 Django View ,如下所示:
def servertime():
return HttpResponse( datetime.now() )
在我重新启动服务器并检查显示该 View 的 url 之后,它首先看起来没问题。然后在某一时刻它有时会给出正确的时间,有时会给出错误的时间。服务器时间是正确的。
有什么线索吗?我用谷歌搜索了它,但没有走运。
最佳答案
我可以看看你的 urls.py 吗?
类似的行为曾经让我难过......
原来是我的 urls.py 调用 View 的方式。 Python 运行一次 datetime.now() 并存储它以备将来调用,从不真正再次调用它。这就是为什么 django 开发人员必须实现将函数而不是函数调用传递给模型的默认值的能力,因为它将采用函数的第一次调用并使用它直到 python 重新启动。
您的行为听起来像是第一次是正确的,因为这是第一次调用 View 。它有时是不正确的,因为它再次获得了相同的日期。然后它再次随机正确,因为你的 apache 可能为它启动了另一个工作进程,当你在处理请求的进程之间跳转时,可能会发生疯狂。
关于python - Django 应用程序中的 datetime.now() 变坏了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/883823/
我是一名优秀的程序员,十分优秀!