Python Flask CLI命令不在\uuuu init\uuuuuuuy.py文件中

Python Flask CLI命令不在\uuuu init\uuuuuuuy.py文件中,python,flask,flask-cli,Python,Flask,Flask Cli,我正在尝试将命令添加到我的Flask应用程序中 这是我的\uuuu init\uuuu.py文件: import os from flask import Flask from flask_cors import CORS from flask_mongoengine import MongoEngine app = Flask(__name__) CORS(app) app.config.from_object(os.environ['APP_SETTINGS']) db = Mongo

我正在尝试将
命令添加到我的Flask应用程序中

这是我的
\uuuu init\uuuu.py
文件:

import os

from flask import Flask
from flask_cors import CORS
from flask_mongoengine import MongoEngine

app = Flask(__name__)
CORS(app)
app.config.from_object(os.environ['APP_SETTINGS'])

db = MongoEngine(app)

import slots_tracker_server.views  # noqa
如果我加上:

@app.cli.command()
def test_run():
    print('here')
我可以毫无问题地运行
flask test\u run
,但是如果我尝试将代码移动到另一个文件,例如:
commands.py
,我会在尝试运行命令时收到错误
error:no这样的命令“test\u run”。

我错过了什么

使用
单击
(Flask命令后面的库)注册命令:

# commands.py
import click

@click.command()
def test_run():
    print('here')
# __init__.py
from yourapp import commands

from flask import Flask
app = Flask(__name__)

app.cli.add_command(commands.test_run)
\uuuu init\uuuuu.py
中导入并注册命令:

# commands.py
import click

@click.command()
def test_run():
    print('here')
# __init__.py
from yourapp import commands

from flask import Flask
app = Flask(__name__)

app.cli.add_command(commands.test_run)

查看一下
commands.py中的

,您可以添加如下寄存器功能:

def register(app):

    @app.cli.command(name='test_run', help="test_run command")
    def register_test_run():
        test_run()

    # other commands to register
然后在
\uuuu init\uuuuu.py
中导入此寄存器函数

from flask import Flask
app = Flask(__name__)

from commands import register
register(app)

请注意,您应该在初始化
应用程序后导入
注册

我确信我尝试过这个,但现在它可以工作了,谢谢