我使用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)都会被忽略。我原本期望系统发出一些警告或错误......
答案 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()
结果输出: