flask运行多个服务器,为什么运行Flaskdev服务器两次?

926de2a09e0da7b9c7fc22af8f0f6fa9.png

阿晨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操作者可以,可能为每个新的子进程调用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值