我正在使用HTML输入(文本和按钮)为我的Flask程序中的以下页面生成值:
@app.route('/sale/add', methods=['GET','POST'])
def add_sale():
if request.method == 'POST':
comp = 150
pen = 0
bonus = 0
base = 0
if request.form['stm'] == 1:
if request.form['call'] == 'yes':
comp += 150
if request.form['ryg'] == 0:
pen += 150
elif request.form['call'] == 'no':
comp += 100
if request.form['ryg'] == 0:
pen += 150
else:
comp = 150
pen = 0
if request.form['fee'] == 0:
pen += 50
if request.form['level'] >= 1:
base += 400
我正在寻求Python代码的帮助,因为无论通过HTML表单输入什么值,变量comp
总是以150
出现,而base
总是出现为400
。这不是HTML表的问题,因为值正确地输入到数据库中。我遇到的只是Python变量。
例如,
request.form['call']
作为'yes'
输入到数据库中,request.form['stm']
输入1
但变量comp
仍然计算为150
(而不是300
)
request.form['level']
输入为0
,但变量base
仍然计算为400
(而不是0
)
我不在此处包含HTML或SQL代码,因为我认为这不会影响结果,但如果它有用,我可以编辑并添加它。
示例数据库条目:
(ID,name,date,date2,call,stm,ryg,fee,bonus,base,compPay,penalty,bonusPay,basePay)
(7, u'fj', u'2015-05-27', None, u'yes', 1, 1, 1, 0, 0, 150.0, 0.0, 0.0, 400.0)
答案 0 :(得分:0)
问题是__getitem__
将值作为字符串返回,但您将它们与数字进行比较。在Python 3中,这将有助于抛出TypeError
,但Python 2可以让你逃避这一点。解决方案是:
request.form.get('stm', type=int) == 1