我正在尝试新的Flask 0.11命令行功能。我安装了Flask 0.11.1和python 2.7.6。我已经设法定义无参数函数并让它们执行:
@myapp.cli.command()
def hi():
print "hi"
% flask hi
hi
如何为命令指定参数?我试过这个是因为Flask的建议:
@myapp.cli.command()
def hi(foo):
print foo
% flask nowayjose
Usage: flask [OPTIONS] COMMAND [ARGS]...
Error: No such command "nowayjose".
% flask hi there
Usage: flask hi [OPTIONS]
Error: Got unexpected extra argument (there)
我也很困惑,因为用法说应该在COMMAND之后指定OPTIONS,而第一个用法说它应该在COMMAND之前指定。
我也试过这个:
@recargo.cli.command()
def hi(foo=None):
print foo
% flask hi
None
% flask hi --foo 'bar'
Error: no such option: --foo
答案 0 :(得分:1)
啊,我查看了click,这是指定标志参数的方法:
@myapp.cli.command()
@click.option('--foo', default="woo")
def hi(foo):
print foo
% flask hi --foo
woo
对于位置参数:
@myapp.cli.command()
@click.argument('arg')
def hi(arg):
print arg
% flask hi foobar
foobar