Werkzeug重载程序生成一个子进程,以便它可以在每次代码更改时重新启动该进程。Werkzeug是一个库,当您调用
app.run()
.
见
restart_with_reloader()
function code
再一次
具有
subprocess.call()
如果你设置
use_reloader
到
False
app.run(port=4004, debug=config.DEBUG, host='0.0.0.0', use_reloader=False)
当使用
flask run
命令也:
FLASK_DEBUG=1 flask run --no-reload
你可以找
WERKZEUG_RUN_MAIN
如果要检测何时处于重新加载子进程中,则为环境变量:
import os
if os.environ.get('WERKZEUG_RUN_MAIN') == 'true':
print '################### Restarting @ {} ###################'.format(
datetime.utcnow())
但是,如果需要设置模块全局变量,则应使用
@app.before_first_request
decorator
@app.before_first_request
def before_first_request():
print '########### Restarted, first request @ {} ############'.format(
datetime.utcnow())
如果在使用forking或新的子进程来处理请求的完整WSGI服务器中运行此命令,请考虑
before_first_request
处理程序
可以