【问题标题】:Moving Custom CLI commands to another file将自定义 CLI 命令移动到另一个文件
【发布时间】:2019-02-21 22:58:56
【问题描述】:

我为正在编写的烧瓶应用程序提供了一些自定义 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")

谢谢

【问题讨论】:

  • 您是否弄清楚了错误的原因是什么,因为类似的代码对我来说很好。
  • 上面的代码工作得很好,我只是想把它们移到另一个文件中,所以我没有一个很大的 app.py 文件。请查看已接受的答案。

标签: flask


【解决方案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 很常见。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-30
    • 1970-01-01
    • 2020-04-24
    • 2011-06-12
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 2021-12-13
    相关资源
    最近更新 更多