这个涉及到的知识点是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条数据就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。
场景: 比如有一个调查问卷的项目,每个问卷里有很多道题,点击可以切换下一道题 假设我需要在显示之后的题目之前,展示所有题目的预览页面,且可以截图,应该如何显示? (如果只能在预览页面里遍历所有的题目全部渲染,这样是否会有性能问题?)
问题内容: 我正在构建一个包含几个主要部分的webapp。每个部分都有几个子部分。我有一个保存导航栏的文件。HTML使用模板中的命令将其添加到基于文件。此外,我有几个小节nav文件,每个文件都使用同一命令添加到任何给定页面。 所有的导航栏都非常简单,只是带有标签的文本。 我想突出显示当前主要部分和当前子部分的链接。由于此Web应用程序很大,因此我希望以某种方式完成此操作而不添加特定于页面的信息。另
本文向大家介绍Django读取Mysql数据并显示在前端的实例,包括了Django读取Mysql数据并显示在前端的实例的使用技巧和注意事项,需要的朋友参考一下 前言: 由于使用Django框架来做网站,需要动态显示数据库内的信息,所以读取数据库必须要做,写此博文来记录。 接下来分两步来做这个事,添加网页,读取数据库; 一、添加网页 首先按添加网页的步骤添加网页,我的网页名为table.html,
本文向大家介绍Django实现分页显示效果,包括了Django实现分页显示效果的使用技巧和注意事项,需要的朋友参考一下 Django中提供了一个类Paginator专门用来管理和处理分页数据,所以我们在使用之前先导入好相应的类,,另外这里我们也导入了待会会用到的处理异常的两个类 EmptyPage和PageNotAnInteger: 接着编写好视图函数test: 接下来我们完成前端页面的逻辑,这里
问题: 前端如何跳转页面路径 ? 我尝试使用了路由的语法, 但是没有跳转
vue3中使用keep-alive中include属性来缓存router-view 在第一层子级下缓存是生效得 但是在第二级缓存就不生效了 最终想实现得是在全局layout实现个页面缓存(不仅只有两级children还会有更多)、通过组件得name值配置或者路由信息配置 请求大佬指教������