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)