所以我得到了下面的点击命令
from flask import Flask
app = Flask(__name__)
@app.cli.command()
def hello():
print("hello from inside flask")
然后尝试像这样向其添加“帮助”:
@app.cli.command()
@app.cli.argument(help='test command to say hello from inside flask')
def hello():
print("hello from inside flask")
..但它说
AttributeError: 'AppGroup' object has no attribute 'argument'
我相信如果您愿意的话,这应该可以解决
import click
@click.option(help="use this command like this")
或
@click.argument(help="use this command like this")
如果您有@app.cli.command()
,有人知道如何使它正常工作吗?
答案 0 :(得分:3)
点击不支持将help
参数传递给click.argument
,而仅传递给click.option
。在文档中的一些地方都引用了这一点:
https://click.palletsprojects.com/en/7.x/documentation/#help-texts
无法以这种方式记录参数。这是为了遵循Unix工具的一般约定,即仅对最必要的内容使用参数,并通过按名称引用来将其记录在简介文本中。
https://click.palletsprojects.com/en/7.x/parameters/#differences
选项在帮助页面中有完整的说明,而参数则没有(这是故意的,因为参数可能太具体而无法自动记录)
https://click.palletsprojects.com/en/7.x/arguments/
点击也不会尝试为您记录参数,而是希望您手动记录它们,以避免出现丑陋的帮助页面。
相反,Click希望您直接在命令的文档字符串中记录参数。这是因为参数通常与命令帮助文本更紧密地集成在一起,因此Click不会尝试自行编写。
import click
@click.command()
@click.argument("name")
def hello(name):
"""Say hello to NAME."""
click.echo(f"Hello, {name}!")
您可以在Click的问题跟踪器https://github.com/pallets/click/pull/1051上找到讨论和一些示例,这些示例可以添加自变量帮助。不过,目前尚无计划更改Click处理此问题的方式。