千家信息网

Django中get和filter方法有什么区别

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,Django中get和filter方法有什么区别,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。getget 是获取一个对
千家信息网最后更新 2026年11月03日Django中get和filter方法有什么区别

Django中get和filter方法有什么区别,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

get

get 是获取一个对象,有时会出现 DoesNotExist: User matching query does not exist 的情况。

我遇到的一种原因是:get 没获取到内容,因为数据库里 User 这张表没数据。

解决方法:在 User 表中填完相关数据,再使用如下代码。

# solution one: getprofile_mail = User.objects.get(uid=uid)print(profile_mail)if not profile_mail:    return Falseprint(profile_mail.mail)return JsonResponse(profile_mail.mail, safe=False)

profile_mail 获取到的是一个对象 Object,要想获取 mail 还需使用 .mail。

输出的内容如下:

User object (11)123@qq.com

这里还遇到一个错:In order to allow non-dict objects to be serialized set the safe parameter to False。

因为返回是 Json 数据,需要序列化,因此 return JsonResponse(profile_mail.mail, safe=False) 里要加一个 safe=False。

get 返回的是一个对象,只能返回一个,如果记录不存在的话,它会报错。

filter

当面对有多个对象的时候,就不能用 get 了,而应该用 filter。

解决方法:

# solution two: postprofile_mail = User.objects.filter(uid=uid)print(profile_mail)for i in profile_mail:    print(i.mail)    return JsonResponse(i.mail, safe=False)

得到的内容,filter 返回的是一个对象列表,如果记录不存在的话,它会返回 []。

输出的内容如下:

]>123@qq.com

filter 的 values 和 values_list

values(*fields)

返回一个 ValuesQuerySet(QuerySet 的一个子类),迭代时返回的是字典,表示一个对象,但不是模型实例对象。

profile_mail = User.objects.filter(uid=uid)print(profile_mail)profile_mail = User.objects.filter(uid=uid).values()print(profile_mail)

输出的内容如下:

]>

values() 接收可选的位置参数 *fields,它指定 SELECT 应该限制哪些字段。比如下面筛选 mail 信息:

profile_mail = User.objects.filter(uid=uid).values('mail')print(profile_mail)

输出的内容如下:

values_list(*fields, flat=False)

返回的是元组而不是字典。每个元组包含传递给 values_list() 调用的字段的值,所以第一个元素为第一个字段,以此类推。

profile_mail = User.objects.filter(uid=uid).values_list('uid','mail')print(profile_mail)

输出的内容如下:

如果只传递一个字段,你还可以传递 flat 参数。如果为 True,它表示返回的结果为单个值而不是元组。

profile_mail = User.objects.filter(uid=uid).values_list('mail', flat=True)print(profile_mail)

输出的内容如下:

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

内容 对象 输出 字段 数据 方法 参数 字典 帮助 清楚 以此类推 代码 位置 信息 元素 单个 原因 多个 子类 实例 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 苏州找大状互联网科技有限公司 没上市的科技互联网公司 平安科技 互联网 期待互联网科技 齐家互联网科技 鑫亿盛互联网科技 掌上梦互联网科技 互联网科技的未来发展 上海卓越科技 互联网 移动互联网科技股 广州恒生互联网科技有限 栖莱科技互联网股份有限公司 中国互联网十大科技股排名 科技赋能视角下互联网保险发展 高科技互联网套路 上海钢联属于互联网科技股吗 本届互联网大会上的黑科技 神州科技互联网有限公司 互联网科技收购价值 上海旺乐尼互联网科技有限公司 互联网巨头反垄断金融科技 碳银互联网科技 互联网金融科技创新 互联网科技论坛 贵州叶脉互联网科技有限公司所属行业 宁夏科技产业互联网案例 互联网科技大奖都有哪些公司 小米互联网科技园入驻 艺电能源互联网科技有限公司招聘 北京瑞云互联网科技有限公司
0