Django学习五

Django学习五

一、Django分页功能
1.常见属性

   from django.core.paginator import Paginator
    def page_test(request):
        # color=['red','orange','yellow','green','blue','purper']
        # p = Paginator(color,2)   #实例化出来的分页对象
        # # print(p)
        # # print(p.count)
        # # print(p.num_pages)   #页的页面数
        # # print(p.per_page)     #次数(几个为一页)
        # # print(p.page_range)
        # page1 = p.page(1)
        # page2 = p.page(2)
        # print(page1.object_list)
        # print(page2.object_list)
        # print(page2.paginator)  #指向的是p对象
        # print(page1.number)  #当前为哪一页
        # print(page1.has_next()) #判断是否有下一页
        # print(page2.has_previous())  #判断是否有前一页
        # print(page2.has_other_pages())  ##判断是否有前一页或者后一页
        #
        # print(page2.next_page_number())
        # print(page2.previous_page_number())
        #
        # print(page1.start_index()) #这一页最开始的元素
        # print(page1.end_index())  #这一页最后一个元素
        # return HttpResponse('xxx')

在这里插入图片描述
2.跳转上一页或下一页

 {% if page.has_previous %}
       <a href="{% url 'search' %}?page={{ page.previous_page_number }}">上一页</a>
{% endif  %}
{% if page.has_next %}
       <a href="{% url 'search' %}?page={{ page.next_page_number }}">下一页</a>
{% endif  %}

在这里插入图片描述
3.实现计页数

{{ page.number }}/{{ page.paginator.num_pages }}   # 先转化为p对象-->页的页面数

在这里插入图片描述
二、查询
详解地址:https://blog.csdn.net/u013210620/article/details/79182038
1.聚合查询(aggregate)
aggregate()是QuerySet 的一个终止子句,意思是说,它返回一个包含一些键值对的字典。键的名称是聚合值的标识符,值是计算出来的聚合值。键的名称是按照字段和聚合函数的名称自动生成出来的。

from django.db.models import Count,Avg,Sum,Min,Max
def test_info(request):
    rr = Book.objects.all().aggregate(Avg('price'),
                                      Sum('price'),
                                      Min('price'),
                                      Max('price'),
                                      Count('price'))
    print(rr)
    return HttpResponse('xxxx')

在这里插入图片描述
2.分组查询(annotate)
为调用的QuerySet中每一个对象都生成一个独立的统计值

3.F查询
比较同一个 model 实例中两个不同字段的值。

4.Q查询
filter() 等方法中的关键字参数查询都是一起进行“AND” 的

 rr = Book.objects.filter(Q(publish='心灵工坊')|Q(publish='中华书局'))

在这里插入图片描述
三、实现页面跳转(5s之后)

<script>
	function re(){
		window.location="{% url 'login2' %}"
	}
	window.onload=function(){
		window.setTimeout(re,5000)
	}
</script>

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值