为了账号安全,请及时绑定邮箱和手机立即绑定

类型错误:无法将序列乘以“float”类型的非 int | 烧瓶

类型错误:无法将序列乘以“float”类型的非 int | 烧瓶

ITMISS 2023-10-11 15:42:08
我开始学习 Flask 是为了一个大约一个月的小项目。我想做一个计算身体参数(如 BMI 或 LBM)的应用程序。问题是,当我请求表单中的数据时,它以元组的形式出现,因此 body_calculator 模块无法使用它,并在标题中抛出错误。我的问题是:为什么数据以元组的形式出现,在这种情况下,在 Flask 中请求数据的正确方法是什么?烧瓶代码from flask import Flask, url_for, render_template, make_response, request, redirect, sessionimport body_calculator  app = Flask(__name__, static_folder='static',template_folder='templates') @app.route('/', methods = ['GET','POST'])def index():           if request.method == 'POST':                 height = int(request.form['height']),          weight = int(request.form['weight']),         age = int(request.form['age']),         sex = bool(request.form['sex']),         waist = int(request.form['waist'])        body = body_calculator.Parameters(height, weight, age, sex, waist)        LBM = body.Lean_Body_Mass()        BMR = body.Basal_Metabolic_Rate()        BFP = body.Body_Fat_Percentage()        BMI = body.Body_Mass_Index()                    context = {            'height' : height,             'weight' : weight,             'age' : age,             'sex': sex,             'waist' : waist,            'LBM' : LBM,            'BMR' : BMR,            'BMI' : BMI,            'BFP' : BFP            }        return render_template('index.html', **context)                 else:         return render_template('index.html')if __name__ == "__main__":    app.run(debug=True)body_calculator模块    BMI = Noneclass Parameters:    def __init__(self, height, weight, age, sex, waist):        self.height = height        self.weight = weight        self.age = age        self.sex = sex        self.waist = waist                # Body Lean Mass function    def Lean_Body_Mass(self):        if self.sex == 0:             BLM = (0.3281 * self.weight) + (0.33929 * self.height) - 29.5336            return round(BLM,2) 
查看完整描述

1 回答

?
慕村9548890

TA贡献1884条经验 获得超4个赞

这几行看起来有问题:

height = int(request.form['height']),  
weight = int(request.form['weight']), 
age = int(request.form['age']), 
sex = bool(request.form['sex']),

请注意,您编写了一个尾随逗号,它将值放入length-1 元组中:因此,例如第一行height从表单中获取,将其转换为 an int,然后将其放入 length-1 元组中。尝试删除那些结尾的逗号。

查看完整回答
反对 回复 2023-10-11
  • 1 回答
  • 0 关注
  • 77 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信