DRF返回JsonResponse参数设置疑惑点.safe=False 解决...
发布日期:2021-06-29 02:23:16
浏览次数:2
分类:技术文章
本文共 1596 字,大约阅读时间需要 5 分钟。
回顾DRF框架时,产生疑惑点
代码如下:
class BooksAPIVIew(View): def get(self, request): """ 查询所有图书 路由:GET /books/ """ queryset = BookInfo.objects.all() book_list = [] for book in queryset: book_list.append({ 'id': book.id, 'btitle': book.btitle, 'bpub_date': book.bpub_date, 'bread': book.bread, 'bcomment': book.bcomment, 'image': book.image.url if book.image else '' }) return JsonResponse(book_list, safe=False)
问题点:
return JsonResponse(book_list,safe=False),其中safe=False是做什么用,联想到类似于过滤器中的safe防转译…
解决问题 >>>
类似于此种问题,直接进去JsonResponse源码里面找答案,是最有效的方法,
def __init__(self, data, encoder=DjangoJSONEncoder, safe=True, json_dumps_params=None, **kwargs): if safe and not isinstance(data, dict): raise TypeError( 'In order to allow non-dict objects to be serialized set the ' 'safe parameter to False.' ) if json_dumps_params is None: json_dumps_params = { } kwargs.setdefault('content_type', 'application/json') data = json.dumps(data, cls=encoder, **json_dumps_params) super(JsonResponse, self).__init__(content=data, **kwargs)
其中:
if safe and not isinstance(data,dict): raise TypeError( 'In order to allow non-dict objects to be serialized 'safe parameter to False')
告诉我们,当safe=True并且所传过来的data不是dict类型时,会引发异常,提醒我们如果传过来的objects不是dict,就将safe参数设置为False.
其实这也告诉了我们一点,标准的JsonResponse内的数据类型应该为dict字典类型,而不该是其他类型。
如有说得不对,还请点醒我 傲娇脸哈哈哈
转载地址:https://blog.csdn.net/Yyb1201/article/details/108436127 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
感谢大佬
[***.8.128.20]2024年04月14日 13时34分44秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
角谷步数
2019-04-29
C语言二级模拟系统
2019-04-29
乘法算式
2019-04-29
信用卡号校验
2019-04-29
立方和等式
2019-04-29
字符串压缩
2019-04-29
大数相加
2019-04-29
随机投点——用蒙特卡洛方法求π的近似值
2019-04-29
实验一 winrunner的安装使用
2019-04-29
Problem 1001 有多少个整点
2019-04-29
Problem 1002 Another A+B Problem
2019-04-29
Problem 1004 成绩与等级
2019-04-29
Problem 1005 字符串
2019-04-29
Problem 1007 字典序
2019-04-29
Problem 1008 年龄范围
2019-04-29
Problem 1010 字符串II
2019-04-29
割圆法求π
2019-04-29
公式法求π
2019-04-29
汉诺塔问题
2019-04-29
Problem 1011 进制间的转换
2019-04-29