Flask CLI 命令不在 __init__.py 文件中
Flask CLI command not in __init__.py file
我正在尝试将 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
,我会得到错误 Error: No such command "test_run".
尝试 运行 命令时。
我错过了什么?
使用 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)
在你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)
注意,您应该在初始化 app
后导入 register
。
我正在尝试将 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
,我会得到错误 Error: No such command "test_run".
尝试 运行 命令时。
我错过了什么?
使用 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)
在你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)
注意,您应该在初始化 app
后导入 register
。