我正在尝试在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托管在同一台服务器上时,它可以正常工作
答案 0 :(得分:6)
如果将datetime.date.today()
存储在全局模块中,则只会在服务器启动时执行一次。这不是服务器问题,而是代码问题。
如果您需要显示今天日期的结果,则需要在今天需要时调用datetime.date.today()
可调用日期,而不是在启动时调用。
即使您在函数中调用today()
,如果该函数本身仅在模块加载时调用,它仍然只执行一次。
网址格式仅生成一次。每次访问该URL时都不会执行headers
关键字参数,但仅在模块加载时执行。您需要将创建标题移动到视图本身。
答案 1 :(得分:0)
您确定不是错误的时区而不是uWSGI启动时间吗? uWSGI不触及python内部(除非在某些区域内有要求)。