繁体   English   中英

Flask-POST请求仅返回一项

[英]Flask - POST request returns only one item

我的数据库中有用户和警报表。 与用户相关的警报表。

该应用程序使用API​​视图处理所有身份验证。

问题

POST请求成功后,控制器不会返回数据库中的所有项目。 它仅返回一个。

我将在此处编写控制器代码,这些代码将在登录成功后控制操作

我试过了

login_user(user)

for item in user.alarm:
    return jsonify({
        "id": item.id,
        "dovizAdi": item.dovizAdi,
        "mevcutDeger": item.mevcutDeger,
        "beklenenDeger": item.beklenenDeger,
        "oranTuru": item.oranTuru,
        "tarih": item.tarih
    })

仅返回一项

{
  "beklenenDeger": "1.56", 
  "dovizAdi": "ons", 
  "id": 1, 
  "mevcutDeger": "1.54", 
  "oranTuru": "buying", 
  "tarih": null
}

我试过了

result = jsonify(str(user.alarm.all()))
return result

返回所有项目,但我无法获取它们的值。

"[<Alarm u'ons'>, <Alarm u'ceyrek-altin'>]"

我已经在之前的项目mongodb中学习了json实现。 我想我不会理解json如何与sql一起使用,或者错过了理论上的一些重要内容。 对于循环语句,我做的第一个示例不应该返回正确的结果?

您返回for循环而不是收集数据的问题

result = []
for item in user.alarm:
    result.append({
        "id": item.id,
        "dovizAdi": item.dovizAdi,
        "mevcutDeger": item.mevcutDeger,
        "beklenenDeger": item.beklenenDeger,
        "oranTuru": item.oranTuru,
        "tarih": item.tarih
    })
return jsonify(result)

您不应在查询结果上调用str。

result = jsonify(user.alarm.all())

user.alarm.all()将返回queryset。 您可以将其转换为list,然后将其序列化为json尝试以下操作:

result = jsonify(list(user.alarm.all()))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM