小知识,大智慧(restframework 拾忆)

一、直接对query_set序列化,在页面展示的效果是Unicode 编码格式 ,可在json 序列化时候加入一个参数

 course_query = DegreeCourse.objects.all().values('pk','name')
        course_list = list(course_query)
        import json
        ret = json.dumps(course_list)
        return HttpResponse(ret)



# 在前台展示效果如下
[{"pk": 3, "name": "DBA"}, {"pk": 2, "name": "Linuxu8fd0u7ef4"}, {"pk": 1, "name": "pythonu5168u6808"}]
 如果是在js中打印则不影响。
# 如果在json 时候加入一个参数

 ret = json.dumps(course_list,ensure_ascii=False)

效果将成中文
[{"pk": 3, "name": "DBA"}, {"pk": 2, "name": "Linux运维"}, {"pk": 1, "name": "python全栈"}]
View Code

二 、JsonResaponse 如果传进去的参数是一个列表 那么 前台会显示一个报错

 set the safe parameter to False.
此时需要加一个参数
JsonResponse(course_list,safe=False)

如果想让页面直接展示中文效果

JsonResponse(course_list,safe=False,json_dumps_params={'ensure_ascii':False})

三 request.user 如果没有登录的话,会显示一个匿名用户AnonymousUser,如果想让他显示一个空呢

REST_FRAMEWORK 中配置如下
     'UNAUTHENTICATED_USER':None,   # 显示None
    'UNAUTHENTICATED_USER':lambda:'' , 显示“”


原文地址:https://www.cnblogs.com/zjchao/p/8857240.html