这个涉及到的知识点是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条数据就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
- 群星《伤感民谣2CD》黑胶母盘直刻DTS[WAV分轨][1.9G]
- lol全球总决赛lpl一号种子是谁 S14全球总决赛lpl一号种子队伍
- lol全球总决赛哪只队伍最年轻 2024世界赛最年轻队伍排名
- lol全球总决赛lpl二号种子是谁 S14全球总决赛lpl二号种子队伍介绍
- 恩雅-雨过天晴DTS-WAV
- 王心雅《诗意琼瑶》DTS-WAV
- 阿丽娅《印象》DTS6.1-WAV
- PS官方晒《怪物猎人:荒野》公测启动页面!你准备好了吗?
- 《怪物猎人:荒野》新怪物“赫猿兽”PV公布:残暴巨兽登场!
- 童丽2024 《千愁记旧情》8月最新 限量1:1母盘直刻[WAV+CUE][1.1G]
- 陈奕迅《认了吧》[新加坡纸盒版] [WAV+CUE][1.1G]
- 群星《小夫妻 电视原声带》[320K/MP3][113.44MB]
- 孙楠.2004-燃烧【华纳】【WAV+CUE】
- 群星.2003-英皇精挑细选VOL.1【英皇娱乐】【WAV+CUE】
- 林姗.2024-寄天的记忆【豪记】【FLAC分轨】