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

Flask-SQLAlchemy API问题:传入员工ID返回空列表

问题分析与修复

你的代码返回空列表主要有两个核心问题:

  • 参数传递错误:filter_by(employee_id="employee_id")里的"employee_id"是字符串字面量,不是路由传入的实际参数,数据库会去匹配员工ID等于字符串"employee_id"的记录,自然查不到数据,应该直接使用变量employee_id。
  • 循环变量名不一致:循环里定义的变量是rating,但构建响应字典时误用了rate,这会导致逻辑错误(若没触发报错,大概率是存在全局变量干扰,但写法本身不规范),需统一变量名。

修正后的代码:

@app.route('/getrate/<int:employee_id>', methods=['GET'])
def getrate(employee_id):
    # 修正:使用路由传入的实际参数查询
    ratings = employee_ratings.filter_by(employee_id=employee_id).all()
    allRatings = []
    # 修正:循环变量与字典内引用统一为rating
    for rating in ratings:
        newResponse = {
            "id": rating.id,
            "employee_id": rating.employee_id,
            "name": rating.name,
            "department": str(rating.department),
            "phone": rating.phone,
            "title": str(rating.title),
            "score": rating.score,
            "rank": str(rating.rank)  
        }
        allRatings.append(newResponse)

    return {"all": allRatings}

额外优化建议:

  • 该接口是查询数据,建议只保留GET方法,更符合REST接口设计规范。
  • 若需要更标准的JSON响应格式,可以导入from flask import jsonify,然后返回return jsonify({"all": allRatings})。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 21:50:53