Python Flask分区错误

时间:2014-11-20 02:44:37

标签: python flask

我的Python Flask应用程序需要帮助。我试图向用户提供他们指定的部门的结果,但它不起作用。当用户提交" 5"和" 2"例如,它返回" 2"而不是" 2.5"。我不知道为什么会这样做。

以下是我的代码......任何人都可以找出为什么会发生这种情况?

from flask import Flask, session, render_template, request
app = Flask(__name__)
app.secret_key = 'wlFw0WP7SrNmAMF1wJaUSjWMTYdTay8EDIA3FPQhbo9c7wQ9rIdQrzJRzcN1o3mp'

@app.route('/',methods=['GET','POST'])
def index():
    [...]
    if request.method == 'POST':
        a = int(request.form['a'])
        b = int(request.form['b'])
        result = a/b
        return render_template('index.html',session=session,result=result)
    return render_template('index.html',session=session)

# Other routes omitted

if __name__ == '__main__':
    app.run(host='0.0.0.0')

3 个答案:

答案 0 :(得分:3)

在Python 2中,将int除以另一个int将执行整数除法。

要解决此问题,您可以将a乘以1.0,将其转换为浮点数,然后再除以b:

result = a*1.0/b

这应该为您提供预期的2.5而不是2

答案 1 :(得分:0)

在源代码的开头添加此行。

from __future__ import division

答案 2 :(得分:-1)

根据您使用的Python版本,结果可能会有所不同。有关详细信息,请参阅this question。但简而言之,看起来,为了让您看到浮动结果,您需要首先将数字转换为浮点数,如下所示

a = float(request.form["a"])
a = float(request.form["b"])