将自定义CLI命令移动到另一个文件

时间:2019-02-21 22:58:56

标签: flask

我有一些针对正在编写的Flask应用的自定义cli命令。我正在按照这里的说明进行操作:

Command Line Interface

问题是我不想将它们全部放入我的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")

谢谢

1 个答案:

答案 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