我正在使用HTML输入(文本和按钮)为我的烧瓶程序中的以下页面生成值:
@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代码,因为我不认为这是影响结果的因素,但如果它有帮助,我可以编辑和添加它。
DB条目示例:
(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)
发布于 2015-05-13 20:08:44
问题是,__getitem__
将这些值作为字符串返回,但是您正在将它们与数字进行比较。在Python3中,这将有助于抛出一个TypeError
,但是Python2可以让您摆脱这个问题。解决办法是:
request.form.get('stm', type=int) == 1
https://stackoverflow.com/questions/30224191
复制相似问题