The official Flask documentation uses
python -m flask run
Unless you have a reason not to (and you probably don't), use
flask run to run the development server. It is what is supported going forward. Paraphrasing from the docs:
from Flask 0.11 onward the
flaskcommand is recommended. The reason for this is that due to how the dev server's reload mechanism works there are some bizarre side-effects when using
app.run(like executing certain code twice, sometimes crashing without message or dying when a syntax or import error happens).
To solve these problems, the
flask command separates the app from the code that imports the app and runs the server. The
flask.run method still exists because none of those issues were critical, only confusing. It may be fully deprecated in the future.
run command, it also provides the ability to add other useful commands that can be run inside the app context, in place of separate extensions or scripts.
As always, the same warning still applies: do not run the development server in production.