【问题标题】:Failure to end Flask application未能结束 Flask 应用程序
【发布时间】:2016-11-25 15:03:32
【问题描述】:

我有一个烧瓶应用程序如下:

socketio2.run(app2, host="0.0.0.0", port=4998)

我创建了一个方法来结束它,如下所示:

def shutdown_server():
    func = request.environ.get('werkzeug.server.shutdown')
    if func is None:
        raise RuntimeError('Not running with the Werkzeug Server')
    func()

@app2.route('/shutdown', methods=['POST'])
def shutdown():
    shutdown_server()
    print " shutdown"
    return 'Server shutting down...'

我收到以下错误

内部服务器错误

服务器遇到内部错误,无法完成 你的申请。要么服务器超载,要么出现错误 应用程序。

我的目标是结束这个 Flask 应用程序,然后运行 ​​Python 脚本。有什么建议吗?

【问题讨论】:

  • 你导入请求模块了吗?即:from flask import request
  • 是的,我已经导入了

标签: python flask internal-server-error


【解决方案1】:

当您将服务器作为 socketio 服务器运行时,默认的关闭服务器代码将不起作用。但是,socketio 确实提供了一个包装器来停止,当您使用它时,默认行为应该停止服务器。 https://github.com/miguelgrinberg/Flask-SocketIO/blob/master/flask_socketio/init.py#L510

所以如果你把你的代码修改成这样 -

def shutdown_server():
    socketio2.stop()

那么它应该做的工作

【讨论】:

    猜你喜欢
    • 2015-03-05
    • 1970-01-01
    • 2019-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多