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>

前端代码

在app在新建templatetags模块文件夹,再新建一个tags.py文件

tags.py文件代码

from django import template

register = template.Library()

@register.simple_tag
def www(pagenum,num):
if -4<=pagenum-num<=4:
return True
else:
return False templetatag 主要用到两个类 @register.filter 作为过滤方法使用 只能添加一个参数 模板中的应用方法为{% args | 函数名 %} @register.simple_tag 可以添加两个参数 模板中的应用方法为{% 函数名 参数1 参数2 } 扩展方法: as方法
{% 函数名 参数1 参数2 as y } 赋值为x 同python as方法一样

使用时在html文件 使用load方法{% load tags %}  tags:文件名

官方手册

https://docs.djangoproject.com/en/1.9/topics/pagination/

https://docs.djangoproject.com/es/1.9/howto/custom-template-tags/

django分页功能,templatetags的应用的更多相关文章

  1. Django 分页功能

    Django 分页功能比较强大,这边是结合官网的内容写的可以参考 https://docs.djangoproject.com/en/1.9/topics/pagination/ 分页命令行练习案列 ...

  2. Django——分页功能Paginator

    Django分页功能----Paginator Paginator所需参数: Paginator(object_list,per_page) Paginator常用属性: per_page: 每页显示 ...

  3. 2 django系列之django分页与templatetags

    preface 当页面出现的条目多的时候,我们就需要使用分页功能了.Django作为一个知名的web框架,自然也提供了分页功能,下面说说它. Python-shell 练练手 在python下入手 先 ...

  4. django分页功能实现

    django内置的分页功能需要引入内置模块from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger Pagina ...

  5. [oldboy-django][2深入django]分页功能

    1 django自带分页 1.1 分页模板 <!DOCTYPE html> <html lang="en"> <head> <meta c ...

  6. django分页功能

    采用django自带的Paginator功能 from django.core.paginator import Paginator food = foodInfo.objects.filter(fo ...

  7. Django自定制分页功能

    URL: """django_paginner URL Configuration The `urlpatterns` list routes URLs to views ...

  8. django 分页组件

      一.仿django分页功能自己实现 urls.py 1 2 3 4 5 6 7 8 9 from django.conf.urls import url from django.contrib i ...

  9. python_way day18 html-day4, Django路由,(正则匹配页码,包含自开发分页功能), 模板, Model(jDango-ORM) : SQLite,数据库时间字段插入的方法

    python_way day18 html-day4 1.Django-路由系统   - 自开发分页功能 2.模板语言:之母板的使用 3.SQLite:model(jDango-ORM) 数据库时间字 ...

随机推荐

  1. noip模拟赛 Massacre at Béziers

    题目背景 下发压缩包链接: https://pan.baidu.com/s/1geC4ooz 密码: 3vpt 所有的一切———所有的一切都被染成了红与黑. 翻卷的红莲烈焰舔舐着大地,释放出异抽的黑烟 ...

  2. C - Reading comprehension 二分法 求等比数列前N项和

    Read the program below carefully then answer the question. #pragma comment(linker, "/STACK:1024 ...

  3. [bzoj1468][poj1741]Tree_点分治

    Tree bzoj-1468 poj-1741 题目大意:给你一颗n个点的树,求树上所有路径边权和不大于m的路径条数. 注释:$1\le n\le 4\cdot 10^4$,$1\le m \le 1 ...

  4. RPC框架分析

    RPC框架分析 常用的框架 .net(WCF)  .net中分布式框架集大成者,提供多种通信方式,多种安全策略的调用(配置繁琐). java 1.RMI JDK原生(严格的说来算不上框架). 2.Du ...

  5. Spring 新手教程(三) 注入和自己主动装配

         Spring注入是指在启动Spring容器载入bean配置的时候.对类变量的赋值. 两种经常使用注入方式:设值注入和构造注入 以下就这部分知识看代码以及代码中的注解: 1.首先看Spring ...

  6. AWS OpsWorks新增Amazon RDS支持

    AWS OpsWorks是一个应用管理服务. 你可以通过它把你的应用在一个 堆栈中定义成为不同层的集合.每一个堆栈提供了须要安装和配置的软件包信息,同一时候也能部署不论什么在OpsWorks层中定义的 ...

  7. BAPC2014 B&amp;&amp;HUNNU11582:Button Bashing(BFS)

    题意: 给出n,m,代表微波炉有n个button,要求达到总时间为m 然后给出n个数.代表n个button能添加的时间,问最少几步,可以使得按出的总时间大于等于要求的时间,而且相差最小 输出最小的步数 ...

  8. android中的back键处理

    Back键是手机上的后退键,一般的软件不捕获相关信息可能导致你的程序被切换到后台,而回到桌面的尴尬情况,在Android上有两种方法来获取该按钮的事件. 1.直接获取按钮按下事件,此方法兼容Andro ...

  9. log4net preserveLogFileNameExtension 和 watch

    preserveLogFileNameExtension <log4net> <appender name="fileappender" type="l ...

  10. 14招搞定JavaScript调试

    14招搞定JavaScript调试 译者按: 很多时候,大家可能只是依靠console.log来调试JavaScript代码,这样做的局限性不言而喻,这篇博客将教你几招实用的调试技巧. 原文: The ...