如何使用自定义参数运行Flask应用程序?

如何使用自定义参数运行Flask应用程序?,flask,Flask,我正在尝试使用一些附加参数运行我的Flask应用程序。我使用click并面临以下问题。如果我不使用任何参数,只使用常规的flask run命令,则应用程序正在运行,但会忽略我的附加参数 python -m flask run 如果我运行自定义命令,应用程序将执行命令代码,但不运行应用程序本身: python -m flask dbinit -u 相反,它只是通过并显示以下消息: D:….Me.Py:18:警告:静默忽略App.Run(),因为应用程序是从FulsScript命令行执行的。请考

我正在尝试使用一些附加参数运行我的Flask应用程序。我使用click并面临以下问题。如果我不使用任何参数,只使用常规的flask run命令,则应用程序正在运行,但会忽略我的附加参数

python -m flask run
如果我运行自定义命令,应用程序将执行命令代码,但不运行应用程序本身:

python -m flask dbinit -u
相反,它只是通过并显示以下消息: D:….Me.Py:18:警告:静默忽略App.Run(),因为应用程序是从FulsScript命令行执行的。请考虑将APP。 守则:

import click
from flask.cli import with_appcontext
from app import create_app, init_database

app = create_app()


@app.cli.command()
@with_appcontext
@click.option('-u', 'dbopt', flag_value='upgrade',
              default='')
@click.option('-c', 'dbopt', flag_value='create',
              default='')
def dbinit(dbopt):
    print('init db', dbopt)
    init_database(dbopt)
    app.run(debug=False) # not working
我有env var FLASK_APP='myapp'

代码在Win7上运行。我从这里抓住了这个例子


我做错了什么?谢谢。

您可以尝试从werkzeug运行
简单的
,这是我记忆中flask cli使用的。事情是这样的:

from werkzeug.serving import run_simple
return run_simple(
    hostname=host,
    port=port,
    application=app,
    use_reloader=reload,
    use_debugger=debug,
)

使用
set FLASK\u APP=yourapp.py
然后尝试使用
FLASK run
FLASK dbinit
而不使用python@DarkSuniuM,我已经设置了FLASK_应用程序。我尝试在没有python的情况下使用flusk命令,结果是一样的:当我使用flask run时,它运行但忽略标志,如果我使用flask dbinit,它进入命令但不运行应用程序。