Django Models 随机获取指定数量数据方法
方法一:新增models的Manager方法
下面就直接发代码了
使用的时候
数据展示时:
这种方式,是自己定义了一个Models的manager方法,任何一个models都可以使用此方法,具有通用性。
方法二:查询数据时,通过order_by('?')实现
实现代码:
我们可以看到这段代码就是方法一中重写Models的Manager的核心代码,都是通过models的order_by('?')来实现随机获取数据中的数据,在通过切片,实现获得指定大小的数据内容。
注意:
以上两种方法都存在性能瓶颈,当数据库中的数据足够大的时候,就会响应特别慢。官网也不建议这么做。
具体的解释,可以看看此篇文章对于order_by('?')的讲解:https://stackoverflow.com/questions/1731346/how-to-get-two-random-records-with-django/6405601#6405601
方案三:通过随机数,来获取随机的数据
代码:
版权声明: 本文为 InfoQ 作者【Young先生】的原创文章。
原文链接:【http://xie.infoq.cn/article/a58657b976f4765106e7d284c】。未经作者许可,禁止转载。
评论