我正在尝试将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
如果我添加到它:
@app.cli.command()
def test_run():
print('here')
我可以毫无问题地运行flask test_run
,但是如果我尝试将代码移动到另一个文件,例如:commands.py
,则在尝试运行{命令。
我缺少什么?
答案 0 :(得分:1)
使用click
(Flask命令后面的库)注册命令:
# commands.py
import click
@click.command()
def test_run():
print('here')
在您的__init__.py
导入并注册命令:
# __init__.py
from yourapp import commands
from flask import Flask
app = Flask(__name__)
app.cli.add_command(commands.test_run)
答案 1 :(得分:1)
在您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
然后在您的__init__.py
中导入此注册功能
from flask import Flask
app = Flask(__name__)
from commands import register
register(app)
请注意,初始化register
后,您应该导入app
。