如何在flask-script中的@ manager.options中设置默认值

时间:2015-03-15 01:39:32

标签: python flask flask-script

我使用flask-script包构建了一个命令行python脚本来访问常规APIRest服务通过flask管理的sql数据库。 我在设置脚本命令的参数时遇到问题。特别是:

a)如何在@ manager.options行中设置默认值

b)如何设置标志

我尝试过以下内容:

@manager.option('-m', '--credit', dest='credit', default=-1, help='regular value')
@manager.option('--useCredit', dest='useCredit', default=False, help='boolean')
def newClient(credit=100, useCredit=False):

我设法通过将此值添加到函数变量来“破解”默认值,但后来我不知道@ manager.option中的“default”参数是什么? 另外,useCredit总是要求我输入一个值,我怎样才能把它作为一个标志?

更新

感谢@carlos的回答,我意识到我一定是测试错了,因为它可以在manager.option命令中设置默认参数。似乎我在函数定义中放置的任何值(def newClient(credit = 100,useCredit = False)都会被忽略。我原本期望系统发出一些警告或错误......

1 个答案:

答案 0 :(得分:2)

我不太确定问题出在哪里,但快速嘲笑你的代码并没有像你那样表现出同样的错误:

from flask.ext.script import Manager
from flask import Flask

app = Flask(__name__)

manager = Manager(app)

@manager.option('-m', '--credit', dest='credit', default=-1)
@manager.option('-u', '--use_credit', dest='use_credit', default=False)
def new_client(credit, use_credit):
    if credit is None:
        print "credit is", credit
    else:
        print "credit is", credit, "with use_credit", use_credit

if __name__ == "__main__":
    manager.run()

结果输出:

enter image description here