阿晨1998
Werkzeug重新加载程序生成一个子进程,以便它可以在每次代码更改时重新启动该进程。Werkzeug是在您调用开发服务器时向开发服务器提供的库。app.run().见restart_with_reloader()功能代码;您的脚本正在运行。再一次带着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 osif os.environ.get('WERKZEUG_RUN_MAIN') == 'true':
print '################### Restarting @ {} ###################'.format(
datetime.utcnow())但是,如果需要设置模块全局,则应该使用@app.before_first_request装饰师在一个函数上,并将该函数设置为这样的全局。当第一个请求传入时,每次重新加载后只会调用一次:@app.before_first_requestdef before_first_request():
print '########### Restarted, first request @ {} ############'.format(
datetime.utcnow())请注意,如果您在使用分叉或新的子进程来处理请求的完整wsgi服务器中运行此操作,则before_first_request操作者可以,可能为每个新的子进程调用。