def get_classroom_list(request):
data = json.loads(request.body)
year = data.get('year')
obj = Classroom.objects.filter(year=year)
res = {
"code": 0,
"msg": 'OK!',
"data": obj
}
return ??????
前端访问后Django不是报错就是数据不是我想要的格式
需要Django返回这样的格式,代码怎么写呢?
{
"code": 0,
"msg": "测试获取数据成功",
"data": [
{
"id": "55",
"title": "啊啊啊",
"classroomtype": "1",
"kzcd": "8",
},
{
"id": "11",
"title": "阿大声道",
"classroomtype": "1",
"kzcd": "5",
}
]
}
from django.http import JsonResponse
from django.forms.models import model_to_dict
def get_classroom_list(request):
data = json.loads(request.body)
year = data.get('year')
obj = Classroom.objects.filter(year=year)
data = []
for i in obj:
data.append(model_to_dict(i))
res = {
"code": 0,
"msg": 'OK!',
"data": data
}
return JsonResponse(res)
有帮助的话,请点采纳该答案~
data 是一个数组,数组里面每一个元素是一个字典,字典含有多个 键-值 对。
看看以下代码得到什么样的数据:
data = json.loads(request.body)
year = data.get('year')
obj = Classroom.objects.filter(year=year)
需要使用JsonResponse
return JsonResponse({
"code": 0,
"msg": "测试获取数据成功",
"data": [
{
"id": "55",
"title": "啊啊啊",
"classroomtype": "1",
"kzcd": "8",
},
{
"id": "11",
"title": "阿大声道",
"classroomtype": "1",
"kzcd": "5",
}
]
})
- 使用HttpResponseRedirect
- redirect 和 reverse
- 状态码:302,301
为了使Python Django后端返回符合需求的数据格式,可以采用以下步骤:
from django.http import JsonResponse
def data_view(request):
data = {
'name': 'Tom',
'age': 25,
'gender': 'male'
}
return JsonResponse(data)
def data_view(request):
if request.method == 'POST':
post_data = request.POST
# 进行数据处理
data = {
'result': 'success'
}
else:
data = {
'result': 'fail'
}
return JsonResponse(data)
from django.http import HttpResponse
def data_view(request):
data = {
'name': 'Tom',
'age': 25,
'gender': 'male'
}
json_data = json.dumps(data)
response = HttpResponse(json_data)
response['Content-Type'] = 'application/json'
return response
from django.shortcuts import redirect
from django.urls import reverse
def index_view(request):
if condition:
return redirect('next_page')
else:
return redirect(reverse('prev_page'))
总之,Django具有强大的数据处理能力和丰富的视图函数,开发者可以根据实际需要进行灵活的调整和设计,以返回符合自己需求的数据格式。