04.07 django模板标签 实现分页功能

在Django页面显示后台内容,加模板标签,{%   %}    

1.例如if语句

{% if condition1 %}
   ... display 1
{% elif condition2 %}
   ... display 2
{% else %}
   ... display 3
{% endif %}

2.{{  mess  }}输出后台内容

3.给标签增加一个 reversed 使得该列表被反向迭代:

{% for athlete in athlete_list reversed %}
...
{% endfor %}

4.可以嵌套使用 {% for %} 标签:

{% for athlete in athlete_list %}
    <h1>{{ athlete.name }}</h1>
    <ul>
    {% for sport in athlete.sports_played %}
        <li>{{ sport }}</li>
    {% endfor %}
    </ul>
{% endfor %}

5.模板过滤器,过滤器使用管道字符 |

过滤管道可以被* 套接* ,既是说,一个过滤器管道的输出又可以作为下一个管道的输入:

{{ my_list|first|upper }}   将第一个元素转换大写,lower小写

有些过滤器有参数。 过滤器的参数跟随冒号之后并且总是以双引号包含。 例如:

{{ bio|truncatewords:"30" }}   显示变量bio的前30个词

date : 按指定的格式字符串参数格式化 date 或者 datetime 对象,实例:

{{ pub_date|date:"F j, Y" }}


6.{% include %} 标签允许在模板中包含其它的模板的内容。

下面这个例子都包含了 nav.html 模板:

{% include "nav.html" %}   在一个页面包含另一个页面


7.模板继承,实现页面统一

HelloWorld/templates/base.html 文件代码:

< ! DOCTYPE html >
< html >
< head >
    < meta charset = " utf-8 " >
    < title > 菜鸟教程(runoob.com) </ title >
</ head >
< body >
    < h1 > Hello World! </ h1 >
    < p > 菜鸟教程 Django 测试。 </ p >
    {% block mainbody %}
        < p > original </ p >
    {% endblock %}
</ body >
</ html >


HelloWorld/templates/hello.html 文件代码:

{% extends "base.html" %} 继承base.html页面,大括号中的部分,括号外面还依次显示
{% block mainbody %}    
< p > 继承了 base.html 文件 </ p >
{% endblock %}



分页:

pages:当前页码

pageSize:每页显示的最大记录数

pg:一共多少页

后台:

def show(request,pageNo=1):
    #查询所有博客记录
    #获取第几页,每页显示的最大记录数
    #select * from tablename limit (pageno-1)*pagesize,pagesize
    pageSize = 4#一页有多少条记录
    pg=Paginator(Blog.objects.all().order_by('-createTime'),pageSize)#导入模块,一共有多少页,是一个对象
    pages=pg.page(pageNo)#获取当前页
    return render(request,'manager/show.html',{'pg':pg,'pages':pages})

前台:

{% for i in pg.page_range %}
    <a href="/blogManager/show/{{ i }}">{{ i }}</a>
{% endfor %}<br>
    <a href="/blogManager/show/1">首页</a>
{% if pages.has_previous  %}
<a href="/blogManager/show/{{ pages.number | add:-1 }} ">上一页</a>
{% endif %}
{% if pages.has_next %}
<a href="/blogManager/show/{{ pages.number | add:1}} ">下一页</a>
{% endif %}

<a href="/blogManager/show/{{ pg.num_pages }}">尾页</a><br>









猜你喜欢

转载自blog.csdn.net/gaoshiqi5322688/article/details/79858933