likes
comments
collection
share

【实测】django的QuerySet 是啥玩意,应该怎么用?

作者站长头像
站长
· 阅读数 5
废话不多说,直接用土话给你讲明白:

   先来看看query是什么意思?其实就是查询的意思。

所以,queryset 是什么?是查询结果的集合的意思。

我就不用那些标准的百度百科的回答了,咱直接上代码,从数据直接拿出来的数据来当例子,你就明白了。

我们用数据工厂平台的代码做演示,目前的models.py中的超链接表,存放数据为这样的,有俩个字段:

【实测】django的QuerySet 是啥玩意,应该怎么用?

如图,俩个字段分别是link_name和link_url。

并且,下面的自动展示文案指定成了 link_name。

好然后我们用一段函数来把数据从中取出来并打印:

【实测】django的QuerySet 是啥玩意,应该怎么用?

结果如下:

【实测】django的QuerySet 是啥玩意,应该怎么用?

可以看到,直接从数据库用.all 或者.filter方法拿出来的 结果是queryset,也就是查询集合。

他们默认显示的就是 前面指定的那个字段- link_name,但是它其实包含的是整个数据,所有字段。

所以queryset的另一个特性就是可以像列表一样遍历和用下标定位具体内部元素:

【实测】django的QuerySet 是啥玩意,应该怎么用?

【实测】django的QuerySet 是啥玩意,应该怎么用?

遍历的具体子元素,都是一个个货真价实的数据记录哈。

别看我直接输出,就显示一个link_name的值。但是其实也有其他字段,link_url:

【实测】django的QuerySet 是啥玩意,应该怎么用?

【实测】django的QuerySet 是啥玩意,应该怎么用?

这些个1111 2222 的确是我随便写的link_url的值:

【实测】django的QuerySet 是啥玩意,应该怎么用?

再来看看,如果后面加上.values() 得到的是什么吧?

【实测】django的QuerySet 是啥玩意,应该怎么用?

【实测】django的QuerySet 是啥玩意,应该怎么用?

此时我们得到的仍然是queryset,但结果中,却显示了所有字段。

这样我们用起来就更方便。为什么这么说呢?

因为我们可以把它外面再加上list() 变成我们python常用的格式了。

【实测】django的QuerySet 是啥玩意,应该怎么用?

【实测】django的QuerySet 是啥玩意,应该怎么用?

注意,此时的结果,变成了 列表里面套字典的样式,这回我们可以说随便摆弄了吧?

而且这个格式,可以直接传给前端的js函数中也就是bom层来使用。

转载自:https://juejin.cn/post/7056456752451026974
评论
请登录