【发布时间】:2016-08-10 15:04:36
【问题描述】:
我在 Flask 中构建了一个小型 Web 应用程序,并尝试将其部署在 Pythonanywhere 上。
在开发过程中,我使用本地服务器并启动我的应用程序:
if __name__ == '__main__':
app.run(debug=True,extra_files=['./static/results.csv',])
results.csv 用作一个小型数据库(我不需要更多),每次在文件中添加一行时,从 Flask 表单提交,应用程序都会重新启动。然后我得到:
Detected change in '/Users/rodolphegonzales/sync/Survey/app/static/results.csv', reloading
一旦我在 Pythonanywhere 上部署,这将不再起作用。当我跑步时:
if __name__ == '__main__':
app.run(debug=False,extra_files=['./static/results.csv',])
我明白了:
Internal Server Error. The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.
查看日志,这是因为未检测到 results.csv 中的更改,并且未重新加载应用程序。
在部署 Flask 应用时如何正确检测额外文件的变化?
编辑:文件更改检测和重新加载显然不可能在调试模式之外进行。触摸 WSGI 应该会自动重新加载,我试试看。
【问题讨论】:
-
您现在可以使用此答案中提到的
TEMPLATES_AUTO_RELOAD = True选项 - stackoverflow.com/a/38371484/1662984
标签: python web-applications flask web-deployment pythonanywhere