如何为 Flask 命令组设置帮助消息?

pla*_*etp 10 python command-line command flask

我正在尝试改编 Flask文档中的示例来在组中创建自定义命令:

import click
from flask import Flask
from flask.cli import AppGroup

app = Flask(__name__)
user_cli = AppGroup('user')

@user_cli.command('create')
@click.argument('name')
def create_user(name):
    ...

app.cli.add_command(user_cli)

$ flask user create demo
Run Code Online (Sandbox Code Playgroud)

这似乎工作正常,但是当我运行时,flask --help我看到列出的命令没有任何帮助消息,例如:

Commands:
  user
  foo
  db             Perform database migrations.
Run Code Online (Sandbox Code Playgroud)

如何向一组命令添加帮助消息('user'在本例中)?

tep*_*hyr 9

如果您使用蓝图创建 CLI 命令,请添加blueprint_obj.cli.short_help顶级帮助:

bp_database = Blueprint('bp_database', __name__, cli_group='database')
bp_database.cli.short_help = 'Database utilities'
Run Code Online (Sandbox Code Playgroud)

输出:

Commands:
  database  Database utilities
  run       Run a development server.
  shell     Run a shell in the app context.
Run Code Online (Sandbox Code Playgroud)


pjc*_*ham 5

使用short_help参数。AppGroup继承自Group继承自MultiCommand继承自Command。请参阅Click 的源代码Command

例如:

import click
from flask import Flask
from flask.cli import AppGroup

user_cli = AppGroup('user', short_help="Adds a user")


@user_cli.command('create')
@click.argument('name')
def create_user(name):
    print(name)


app = Flask(__name__)

app.cli.add_command(user_cli)

@app.route('/')
def hello_world():
    return 'Hello World!'


if __name__ == '__main__':
    app.run()
Run Code Online (Sandbox Code Playgroud)

提供以下输出(Windows PyCharm 终端):

(flask_cli_group) D:\Paul\PycharmProjects\flask_cli_group>flask
Usage: flask [OPTIONS] COMMAND [ARGS]...

  A general utility script for Flask applications.

  Provides commands from Flask, extensions, and the application. Loads the
  application defined in the FLASK_APP environment variable, or from a
  wsgi.py file. Setting the FLASK_ENV environment variable to 'development'
  will enable debug mode.

    > set FLASK_APP=hello.py
    > set FLASK_ENV=development
    > flask run

Options:
  --version  Show the flask version
  --help     Show this message and exit.

Commands:
  routes  Show the routes for the app.
  run     Run a development server.
  shell   Run a shell in the app context.
  user    Adds a user

(flask_cli_group) D:\Paul\PycharmProjects\flask_cli_group>
Run Code Online (Sandbox Code Playgroud)