Django学习五

    xiaoxiao2023-10-31  173

    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>

    最新回复(0)