首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >瓶程序中Python代码的误判

瓶程序中Python代码的误判
EN

Stack Overflow用户
提问于 2015-05-13 20:02:51
回答 1查看 47关注 0票数 0

我正在使用HTML输入(文本和按钮)为我的烧瓶程序中的以下页面生成值:

代码语言:javascript
运行
复制
@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)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-13 20:08:44

问题是,__getitem__将这些值作为字符串返回,但是您正在将它们与数字进行比较。在Python3中,这将有助于抛出一个TypeError,但是Python2可以让您摆脱这个问题。解决办法是:

  • 将该值与字符串:‘request.form’‘stm’== "1“进行比较
  • 将值转换为数字:request.form.get('stm', type=int) == 1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30224191

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档