我有一些针对正在编写的Flask应用的自定义cli命令。我正在按照这里的说明进行操作:
问题是我不想将它们全部放入我的app.py文件中,它会变得过分膨胀。我想做的是拥有我的项目结构:
project
|_ app.py
|_ cli.py
我考虑过使用蓝图,但是我得到“蓝图没有属性'cli'”
这是我尝试过的:
cli = Blueprint('cli', __name__) # I knew this would not work but I had to try
@cli.cli.command()
@click.argument('name')
def create_user(name):
print("hello")
谢谢
答案 0 :(得分:1)
我会做这样的事情:
cli.py:
from flask import Flask
import click
def register_cli(app: Flask):
@app.cli.command()
@click.argument('name')
def create_user(name):
print("hello", name)
app.py:
from flask import Flask
from cli import register_cli
app = Flask(__name__)
register_cli(app)
通常在factory functions中创建和配置(或仅配置)app
。