[英]Json Records returns only one rows of records from database via django
我在数据库中有3条记录,但是json响应仅返回一条记录。
我需要通过实例化变量来通过json显示数据库记录,以便在从数据库输出json记录时,可以分别使用fname和lname之类的东西,而不是使用数据库的姓氏firstname和lastname 。
为此,我在下面创建了以下代码
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.