Flask CLI 命令不在 __init__.py 文件中

shl*_*Lan 2 python flask flask-cli

我正在尝试添加commands到我的 Flask 应用程序中。

这是我的__init__.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
Run Code Online (Sandbox Code Playgroud)

如果我添加它:

@app.cli.command()
def test_run():
    print('here')
Run Code Online (Sandbox Code Playgroud)

我可以flask test_run毫无问题地运行,但如果我尝试将代码移动到另一个文件,例如: ,我在尝试运行命令时commands.py会收到错误。Error: No such command "test_run".

我缺少什么?

小智 5

使用click(Flask 命令背后的库)注册您的命令:

# commands.py
import click

@click.command()
def test_run():
    print('here')
Run Code Online (Sandbox Code Playgroud)

__init__.py导入并注册命令中:

# __init__.py
from yourapp import commands

from flask import Flask
app = Flask(__name__)

app.cli.add_command(commands.test_run)
Run Code Online (Sandbox Code Playgroud)

看一下官方文档