Flask REST API以user_id为请求参数时返回空JSON问题求助
错误原因
TransferModel.query.get(user_id)用法不符合预期。SQLAlchemy 中query.get()方法仅支持按表主键查询,你的TransferModel主键是自增字段transfer_id,传入user_id无法匹配到对应记录,返回值为None。- 序列化参数不匹配。即使通过
get()查到单条记录,你设置的TransferSchema(many=True)是专门用来序列化多条记录的列表的,传入单个对象序列化会直接返回空结果。 - 业务逻辑匹配问题:单个
user_id通常对应多条转账记录,你需要查询所有符合user_id条件的记录集合,而非单条记录。
修正后可运行代码
@app.route('/account/bank-statement/<user_id>', methods=['GET']) def get_bank_statement_id(user_id): try: # 按user_id字段筛选所有匹配的记录 bank_statement = TransferModel.query.filter_by(user_id=user_id).all() transfer_schema = TransferSchema(many=True) bank_statement = transfer_schema.dump(bank_statement) array_result = np.asarray(bank_statement) lst = array_result.tolist() return make_response(json.dumps(lst), 200) except ValidationError as error: return make_response(error.messages, 422)
内容的提问来源于stack exchange,提问作者Elielton Limeira
相关产品推荐
相关产品推荐

