Django应用程序uWSGI有错误的datetime.today()结果,显示开始日期

时间:2013-02-25 10:32:11

标签: python django uwsgi

我正在尝试在NGINX和uWSGI后面运行一个Django应用程序,但是从datetime.today()返回从今天启动的uWSGI服务器开始的日期时间出现问题。 该应用程序的配置如下:


    <uwsgi>
     <plugin>python</plugin>
       <socket>127.0.0.1:3030</socket>
       <chdir>/opt/ETS/bin</chdir>
       <pythonpath>..</pythonpath>
       <module>instance</module>
     </uwsgi>

uWSGI的设置是默认设置,没有任何更改。

如何让日期时间重新开始?

澄清: 在访问网址

时,在此功能中进行调用
def create_file_header(name, ext):
    return {'Content-Disposition': 'attachment; filename=%s-%s.%s' % (name, datetime.date.today(), ext) }

来自urlpatten:

(r'^loading_details/basic2/$', ExpandedResource(ReadLoadingDetailHandler, authentication=authentication, 
                                               headers=create_file_header('loading-details', 'csv')), 
 FORMAT_CSV, "api_loading_details_basic_auth"),

使用Apache WSGI托管在同一台服务器上时,它可以正常工作

2 个答案:

答案 0 :(得分:6)

如果将datetime.date.today()存储在全局模块中,则只会在服务器启动时执行一次。这不是服务器问题,而是代码问题。

如果您需要显示今天日期的结果,则需要在今天需要时调用datetime.date.today()可调用日期,而不是在启动时调用。

即使您在函数中调用today(),如果该函数本身仅在模块加载时调用,它仍然只执行一次。

网址格式仅生成一次。每次访问该URL时都不会执行headers关键字参数,但仅在模块加载时执行。您需要将创建标题移动到视图本身。

答案 1 :(得分:0)

您确定不是错误的时区而不是uWSGI启动时间吗? uWSGI不触及python内部(除非在某些区域内有要求)。