如何在不使用ctrl-c的情况下停止烧瓶应用

发布于 2021-01-29 19:35:19

我想实现一个可以使用flask-script停止flask应用程序的命令。我已经搜索了一段时间。因为该框架不提供“ app.stop()”
API,所以我对如何编写此代码感到好奇。我正在使用Ubuntu 12.10和Python 2.7.3。

关注者
0
被浏览
251
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    如果您只是在桌面上运行服务器,则可以公开终结点以终止服务器(有关更多信息,请参见Shutdown The Simple
    Server
    ):

    from flask import request
    def shutdown_server():
        func = request.environ.get('werkzeug.server.shutdown')
        if func is None:
            raise RuntimeError('Not running with the Werkzeug Server')
        func()
    
    @app.route('/shutdown', methods=['POST'])
    def shutdown():
        shutdown_server()
        return 'Server shutting down...'
    

    这是另一种包含更多的方法:

    from multiprocessing import Process
    
    server = Process(target=app.run)
    server.start()
    # ...
    server.terminate()
    server.join()
    

    让我知道是否有帮助。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看