django 前端页面如何实现显示前N条数据


Posted in Python onMarch 16, 2020

这个涉及到的知识点是django数据库查询问题,我们可以在view.py文件中操作

blog_list = models.Blog.objects.all()[:3]

这是选取数据库的前三条数据

补充知识:django 数据库查询—如何获取指定范围的数据

检索对象

__exact 精确等于 like ‘aaa'
__iexact 精确等于 忽略大小写 ilike ‘aaa'
__contains 包含 like ‘%aaa%'
__icontains 包含 忽略大小写 ilike ‘%aaa%',但是对于sqlite来说,contains的作用效果等同于icontains。
__gt 大于
__gte 大于等于
__lt 小于
__lte 小于等于
__in 存在于一个list范围内
__startswith 以…开头
__istartswith 以…开头 忽略大小写
__endswith 以…结尾
__iendswith 以…结尾,忽略大小写
__range 在…范围内
__year 日期字段的年份
__month 日期字段的月份
__day 日期字段的日
__isnull=True/False
__isnull=True 与 __exact=None的区别

1、检索所有的对象

>>> all_entries = Entry.objects.all()

使用all()方法返回数据库中的所有对象。

2、检索特定的对象

使用以下两个方法:

fileter(**kwargs)

返回一个与参数匹配的QuerySet,相当于等于(=).

exclude(**kwargs)

返回一个与参数不匹配的QuerySet,相当于不等于(!=)。

Entry.objects.filter(pub_date__year=2006)

不使用Entry.objects.all().filter(pub_date__year=2006),虽然也能运行,all()最好再获取所有的对象时使用。

上面的例子等同于的sql语句:

select * from entry where pub_date_year='2006′

链接过滤器:

>>> Entry.objects.filter(
… headline__startswith='What'
… ).exclude(
… pub_date__gte=datetime.now()
… ).filter(
… pub_date__gte=datetime(2005, 1, 1)
… )

最后返回的QuerySet是headline like ‘What%' and put_date2005-01-01

另外一种方法:

>> q1 = Entry.objects.filter(headline__startswith=”What”)
>> q2 = q1.exclude(pub_date__gte=datetime.now())
>> q3 = q1.filter(pub_date__gte=datetime.now())

这种方法的好处是可以对q1进行重用。

QuerySet是延迟加载

只在使用的时候才会去访问数据库,如下:

>>> q = Entry.objects.filter(headline__startswith=”What”)
>>> q = q.filter(pub_date__lte=datetime.now())
>>> q = q.exclude(body_text__icontains=”food”)
>>> print q

在print q时才会访问数据库。

其他的QuerySet方法

>>> Entry.objects.all()[:5]

这是查找前5个entry表里的数据

>>> Entry.objects.all()[5:10]

这是查找从第5个到第10个之间的数据。

>>> Entry.objects.all()[:10:2]

这是查询从第0个开始到第10个,步长为2的数据。

>>> Entry.objects.order_by(‘headline')[0]

这是取按headline字段排序后的第一个对象。

>>> Entry.objects.order_by(‘headline')[0:1].get()

这和上面的等同的。

>>> Entry.objects.filter(pub_date__lte='2006-01-01′)

等同于SELECT * FROM blog_entry WHERE pub_date <= '2006-01-01′;

>>> Entry.objects.get(headline__exact=”Man bites dog”)

等同于SELECT … WHERE headline = ‘Man bites dog';

>>> Blog.objects.get(id__exact=14) # Explicit form
>>> Blog.objects.get(id=14) # __exact is implied

这两种方式是等同的,都是查找id=14的对象。

>>> Blog.objects.get(name__iexact=”beatles blog”)

查找name=”beatles blog”的对象,不去饭大小写。

Entry.objects.get(headline__contains='Lennon')

等同于SELECT … WHERE headline LIKE ‘%Lennon%';

startswith 等同于sql语句中的 name like ‘Lennon%',

endswith等同于sql语句中的 name like ‘%Lennon'.

>>> Entry.objects.filter(blog__name__exact='Beatles Blog')

查找entry表中外键关系blog_name='Beatles Blog'的Entry对象。

>>> Blog.objects.filter(entry__headline__contains='Lennon')

查找blog表中外键关系entry表中的headline字段中包含Lennon的blog数据。

Blog.objects.filter(entry__author__name='Lennon')

查找blog表中外键关系entry表中的author字段中包含Lennon的blog数据。

Blog.objects.filter(entry__author__name__isnull=True) 
Blog.objects.filter(entry__author__isnull=False,entry__author__name__isnull=True)

查询的是author_name为null的值

Blog.objects.filter(entry__headline__contains='Lennon',entry__pub_date__year=2008)
Blog.objects.filter(entry__headline__contains='Lennon').filter( entry__pub_date__year=2008)

这两种查询在某些情况下是相同的,某些情况下是不同的。第一种是限制所有的blog数据的,而第二种情况则是第一个filter是

限制blog的,而第二个filter则是限制entry的

>>> Blog.objects.get(id__exact=14) # Explicit form
>>> Blog.objects.get(id=14) # __exact is implied
>>> Blog.objects.get(pk=14) # pk implies id__exact

等同于select * from where id=14

Get blogs entries with id 1, 4 and 7

>>> Blog.objects.filter(pk__in=[1,4,7])

等同于select * from where id in{1,4,7}

Get all blog entries with id > 14

Blog.objects.filter(pk__gt=14)

以上这篇django 前端页面如何实现显示前N条数据就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python类的多重继承问题深入分析
Nov 09 Python
Python常用的日期时间处理方法示例
Feb 08 Python
Python实现简单的可逆加密程序实例
Mar 05 Python
在Python的web框架中编写创建日志的程序的教程
Apr 30 Python
Python判断字符串是否为字母或者数字(浮点数)的多种方法
Aug 03 Python
python实现kmp算法的实例代码
Apr 03 Python
python计算n的阶乘的方法代码
Oct 25 Python
Django websocket原理及功能实现代码
Nov 14 Python
python中二分查找法的实现方法
Dec 06 Python
浅谈Python xlwings 读取Excel文件的正确姿势
Feb 26 Python
python爬取股票最新数据并用excel绘制树状图的示例
Mar 01 Python
Python操作CSV格式文件的方法大全
Jul 15 Python
Python迭代器Iterable判断方法解析
Mar 16 #Python
python 递归调用返回None的问题及解决方法
Mar 16 #Python
python 通过邮件控制实现远程控制电脑操作
Mar 16 #Python
django中的数据库迁移的实现
Mar 16 #Python
django之从html页面表单获取输入的数据实例
Mar 16 #Python
Django实现将views.py中的数据传递到前端html页面,并展示
Mar 16 #Python
Python Django view 两种return的实现方式
Mar 16 #Python
You might like
Protoss魔法科技
2020/03/14 星际争霸
PHP系列学习之日期函数使用介绍
2012/08/18 PHP
PHP链接MySQL的常用扩展函数
2014/10/23 PHP
PHP使用HTML5 FormData对象提交表单操作示例
2019/07/02 PHP
JQuery index()方法使用代码
2010/06/02 Javascript
js实现广告漂浮效果的小例子
2013/07/02 Javascript
jsonp原理及使用
2013/10/28 Javascript
jQuery使用andSelf()来包含之前的选择集
2014/05/19 Javascript
window.location.href的用法(动态输出跳转)
2014/08/09 Javascript
JavaScript事件委托技术实例分析
2015/02/06 Javascript
javascript文本模板用法实例
2015/07/31 Javascript
javascript实现checkbox复选框实例代码
2016/01/10 Javascript
jQuery获取复选框被选中数量及判断选择值的方法详解
2016/05/25 Javascript
使用JQuery 加载页面时调用JS的实现方法
2016/05/30 Javascript
Angular和百度地图的结合实例代码
2016/10/19 Javascript
js 调用百度分享功能
2017/02/27 Javascript
JS使用ActiveXObject实现用户提交表单时屏蔽敏感词功能
2017/06/20 Javascript
详解用Node.js实现Restful风格webservice
2017/09/29 Javascript
vue-awesome-swiper滑块插件使用方法详解
2017/11/27 Javascript
解决linux下node.js全局模块找不到的问题
2018/05/15 Javascript
浅谈VUE-CLI脚手架热更新太慢的原因和解决方法
2018/09/28 Javascript
vant picker+popup 自定义三级联动案例
2020/11/04 Javascript
Python处理Excel文件实例代码
2017/06/20 Python
Python3.5 Json与pickle实现数据序列化与反序列化操作示例
2019/04/29 Python
django自带调试服务器的使用详解
2019/08/29 Python
python利用openpyxl拆分多个工作表的工作簿的方法
2019/09/27 Python
python中bytes和str类型的区别
2019/10/21 Python
python3 assert 断言的使用详解 (区别于python2)
2019/11/27 Python
python上传时包含boundary时的解决方法
2020/04/08 Python
详解Django关于StreamingHttpResponse与FileResponse文件下载的最优方法
2021/01/07 Python
内部类的定义、种类以及优点
2013/10/16 面试题
公务员学习习总书记“三严三实”思想汇报
2014/09/19 职场文书
岁月神偷观后感
2015/06/11 职场文书
总结几个非常实用的Python库
2021/06/26 Python
详细分析PHP7与PHP5区别
2021/06/26 PHP
DIV CSS实现网页背景半透明效果
2021/12/06 HTML / CSS