You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python Flask表单参数相加出现字符串拼接问题该如何解决?

问题解决方法

异常原因

Flask 中通过 request.form.get() 读取的表单值默认是字符串类型,你直接将两个字符串传入求和函数时,执行的是字符串拼接逻辑,因此会出现1 + 1 = 11的结果,而不是整数加法的结果。

修改方案

方案1:接口层做类型转换(更推荐)

在获取表单参数后先转换为数值类型,同时增加异常捕获避免用户输入非数字内容时报错:

@app.route('/test', methods=["GET", "POST"])
def print_test():
    if request.method == "POST":
        a = request.form.get("aa")
        b = request.form.get("bb")
        try:
            # 转换为整数,需要支持小数可替换为float()
            a = int(a)
            b = int(b)
        except (ValueError, TypeError):
            return "请输入合法的数字"
        result = sum_test.sum_t(a, b)
        return str(result)
    return render_template('test.html')

方案2:求和函数内部做类型转换

如果希望求和函数兼容字符串类型的数字输入,可以修改sum_test.py的逻辑:

def sum_t(a, b):
    # 转换为整数后再相加,需要支持小数可替换为float()
    return int(a) + int(b)

注意:该方案未做异常处理,若输入无法转换为数字的内容会直接抛出异常,更推荐优先使用方案1

内容的提问来源于stack exchange,提问作者uils tumur

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 03:15:08