0

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

    <uwsgi>
     <plugin>python</plugin>
       <socket>127.0.0.1:3030</socket>
       <chdir>/opt/ETS/bin</chdir>
       <pythonpath>..</pythonpath>
       <模块>实例</模块>
     </uwsgi>

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

我怎样才能让日期时间再次工作?

澄清:在访问 url 时在此函数中进行调用

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 托管在同一台服务器上时工作

4

2 回答 2

6

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

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

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

URL 模式只生成一次headers每次访问 URL 时都不会执行关键字参数,而只会在模块加载时执行。您需要将创建 tha 标头移动到视图本身。

于 2013-02-25T10:33:45.587 回答
0

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

于 2013-02-25T12:56:28.850 回答