Flask POST请求只返回一个项目

2024-09-30 12:35:03 发布

您现在位置:Python中文网/ 问答频道 /正文

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

应用程序处理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
    })

只返回一个项目

^{pr2}$

我试过了

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

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

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

我已经学习了json实现我以前的项目mongodb。我想我没有发现json是如何与sql一起工作的,或者在理论上遗漏了一些重要的东西。For循环语句,我做的第一个例子不应该返回正确的结果?在


Tags: 项目代码用户id数据库报警return控制器
3条回答

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

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

您的问题是返回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)

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

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

相关问题 更多 >

    热门问题