繁体   English   中英

Json Records通过Django从数据库仅返回记录的一行

[英]Json Records returns only one rows of records from database via django

我在数据库中有3条记录,但是json响应仅返回一条记录。

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

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

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"}
    ]

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

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 args。

暂无
暂无

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

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