Flask Snippets

Shutdown The Simple Server

By Armin Ronacher filed in Utilities

The Werkzeug server that is used by the app.run() command can be shut down starting with Werkzeug 0.8. This can be helpful for small applications that should serve as a frontend to a simple library on a user's computer.

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()

Now you can shutdown the server by calling this function:

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

The shutdown functionality is written in a way that the server will finish handling the current request and then stop.

This snippet by Armin Ronacher can be used freely for anything you like. Consider it public domain.

Comments