19 django视图层之(小白必会三板斧+JsonResponse对象)
一、小白必会三板斧(视图函数必须返回一个HttpResponse对象)
HttpResponse class HttpResponse: pass render def render(...): return HttpResponse(...) redirect def redirect(...) # redirect_class是HttpResponse子类 return redirect_class(...)
二、django之JsonResponse对象
1 json格式的数据的作用:
前后端数据交互需要使用到json作为过渡 实现跨语言传输数据
2 JsonResponse对象
推导过程:(可忽略)
点进dunps查看源码
其实,django 有封装好的功能
from django.http import JsonResponse
def index(request):
d={'username':'jason老师','pwd':123,'hobby':[11,22,33]}
return JsonResponse(d)
要想实现中文不转码,该如何做?点JsonResponse查看源码
我们就想着如何写成字典形式呢?
from django.http import JsonResponse def index(request): d={'username':'jason老师','pwd':123,'hobby':[11,22,33]} return JsonResponse(d,json_dumps_params={"ensure_ascii":False})
json.JSONEncoder 点JSONEncoder可查看支持哪些格式的数据
3.JsonResponse对象默认只能序列化字典 ,序列化其他需要加safe参数
from django.http import JsonResponse def home(request): l=[11,22,112,33,44] return JsonResponse(l,safe=False)