【问题标题】:Json Records returns only one rows of records from database via djangoJson Records 通过 django 从数据库中只返回一行记录
【发布时间】:2019-08-14 12:51:25
【问题描述】:

我在数据库中有三条记录,但 json 响应只返回一条记录。

我需要通过 json 实例化一个变量来显示数据库记录,而不是使用数据库名称 firstnamelastname,在从数据库输出 json 记录时,我可以分别使用 fnamelname 之类的东西。 p>

为此,我在下面创建了以下代码

views.py

def read(request):
    response_data = {}
    for members in Member.objects.all():
    #members = Member.objects.all()

        response_data['fname']=members.lastname
        response_data['lname']=members.firstname
        print("successful....")
        jsondata = json.dumps([response_data])
        #jsondata = json.dumps(list([response_data]))
        return HttpResponse(jsondata, content_type='application/json')

我的问题: 我的问题是,每次运行上面的代码时,它通过 json 只显示数据库中的一条记录。 例如。这里

[
{"fname": "Thorr", "lname": "Odinson"}
]

我的要求:

如何使它循环更多并通过 json 显示数据库中的所有三个记录 例如。

 [
    {"fname": "Thorr", "lname": "Odinson"},  
    {"fname": "Ann", "lname": "bell"},
    {"fname": "Jon", "lname": "Han"}
    ]

【问题讨论】:

    标签: django


    【解决方案1】:

    您的错误是您在循环中返回响应。而是先创建响应数据并发送它。

    def read(request):
        response_data = [{'fname': m.lastname, 'lname': m.firstname} for m in Members.objects.all()]
        jsondata = json.dumps(response_data)
        return HttpResponse(jsondata, content_type='application/json')
    

    另外,您的逻辑似乎在颠倒名字和姓氏。我保留此逻辑以与您的代码保持一致,但您可能希望反转 fname 和 lname 参数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-06
      相关资源
      最近更新 更多