django 将不会将得到的html代码自动转化
from django.utils.html import format_html html =''' <a href='http://www.china.cn'>中国</a>''' format_html(html)
django分页
分页功能基本操作
from django.core.import Paginator li=[11,12,13,22,24,25] p=Paginator(li,3) #将li传入,每页显示3条 p.count 6 共有多少个元素 p.num_pages 2 共有多少页 p.page_range (1,3) 页码范围 p1=p.page(1) 取第一页 p2=p.page(2) 取第二页 p1.object_list [11,12,13] 页码的元素列表 p1.number 1 查询自己是多少页 p1.has_next() True 是否有下一页 p1.has_previous() False 是否有上一页 p1.has_other_pages() True 是否有其他页 p1.next_page_number() 2 下一页的页码 p1.previous_page_number() 上一页的页码
后端代码 views.py
from django.shortcuts import render from django.core.paginator import Paginator,EmptyPage, PageNotAnInteger from app import models def index(request): article_obj = models.Aticle.objects.all() paginator = Paginator(article_obj,5) page = request.GET.get('page')#取到url的page值 www.xxx.com/?page=xxx try: contacts = paginator.page(page) except PageNotAnInteger: #如果不是page不是数字 contacts = paginator.page(1) except EmptyPage: #如果page不存在 即超出范围 contacts = paginator.page(paginator.num_pages) return render(request,'duanzi/index.html',{'contacts': contacts,})
前端代码
{% load tags %} <!DOCTYPE html> <html> <head> <title>django web</title> </head> <div class='content'> {% for article in contacts %} <a href="{% url "article" article.id %}" target="_blank">{{ article.title }}</a> {%endfor%} </div> <div class="page"> <a href="{% url 'index' %}">首页</a> {% if contacts.has_previous %} <a href="?page={{ contacts.previous_page_number }}">上页</a> {% endif %} {% for pagenum in contacts.paginator.page_range %} {% www 'pagenum contacts.number' as Y %} {% if Y %} {% if pagenum == contacts.number %} <span class="current">{{ pagenum }}</span> {% else %} <a href="?page={{ pagenum }}">{{ pagenum }}</a> {% endif %} {% endif %} {% endfor %} {% if contacts.has_next %} <a href="?page={{ contacts.next_page_number }}">下页</a> {% endif %} <a href="?page={{ contacts.paginator.num_pages }}">尾页</a> </div>
前端代码
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:django分页功能,templatetags的应用 - Python技术站