I just published a little extension for Flask that exposes some of the options that can be given when calling
Here is the minimal Flask application from the documentation, modified to use this extension:
from flask import Flask, request, render_template from flask.ext.runner import Runner app = Flask(__name__) runner = Runner(app) @app.route('/') def hello_world(): return 'Hello World!' if __name__ == '__main__': runner.run()
You can see the extension in action by invoking the application with
$ python hello.py --help usage: hello.py [-h] [--host HOST] [--port PORT] [--debug] [--noeval] [--reload] [--extra FILE] optional arguments: -h, --help show this help message and exit --host HOST hostname or IP address to listen on (default is "127.0.0.1") --port PORT port of the web server (default is 5000) --debug enable the debugger --noeval disable the exception evaluation feature in the debugger --reload reload the Python process when any modules are changed --extra FILE additional file for the reloader to watch for changes
To install this extension you can use
$ pip install flask-runner
The source code is available on my github.
I hope you find it useful!
UPDATE: just added
--lint to enable the Werkzeug profiler and lint middlewares!
UPDATE #2: just released version 2.0, which is a rewrite as an extension to Flask-Script. The simple interface described in this article remains available, but a more powerful interface that allows custom commands is also available. See the github page for details.