我正在使用Flask开发一个网站,在开发过程中,我使用以下文件运行flask:
#!/usr/bin/env python
from datetime import datetime
from app import app
import config
if __name__ == '__main__':
print('################### Restarting @', datetime.utcnow(), '###################')
app.run(port=4004, debug=config.DEBUG, host='0.0.0.0')当我启动服务器时,或者当它因为文件被更新而自动重启时,它总是显示两次打印行:
################### Restarting @ 2014-08-26 10:51:49.167062 ###################
################### Restarting @ 2014-08-26 10:51:49.607096 ###################虽然这不是一个真正的问题(其余的工作如预期),但我只是想知道为什么它会表现成这样?有什么想法吗?
发布于 2017-11-12 22:49:09
如果使用的是现代的flask run命令,则不会使用app.run的任何选项。要完全禁用重载程序,请传递--no-reload
FLASK_DEBUG=1 flask run --no-reload此外,__name__ == '__main__'永远不会是真的,因为应用程序不是直接执行的。除了没有__main__块之外,使用与Martijn's answer相同的想法。
if os.environ.get('WERKZEUG_RUN_MAIN') != 'true':
# do something only once, before the reloader
if os.environ.get('WERKZEUG_RUN_MAIN') == 'true':
# do something each reload发布于 2016-12-15 02:47:36
我也遇到了同样的问题,我通过将app.debug设置为False解决了这个问题。将它设置为True会导致我的__name__ == "__main__"被调用两次。
发布于 2019-09-20 20:22:41
Flask应用程序自己运行两次的可能原因之一是在Heroku上配置了WEB_CONCURRENCY设置。要设置为1,您可以在控制台heroku config:set WEB_CONCURRENCY=1中编写
https://stackoverflow.com/questions/25504149
复制相似问题