django分页功能,templatetags的应用
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的应用的更多相关文章
- Django 分页功能
Django 分页功能比较强大,这边是结合官网的内容写的可以参考 https://docs.djangoproject.com/en/1.9/topics/pagination/ 分页命令行练习案列 ...
- Django——分页功能Paginator
Django分页功能----Paginator Paginator所需参数: Paginator(object_list,per_page) Paginator常用属性: per_page: 每页显示 ...
- 2 django系列之django分页与templatetags
preface 当页面出现的条目多的时候,我们就需要使用分页功能了.Django作为一个知名的web框架,自然也提供了分页功能,下面说说它. Python-shell 练练手 在python下入手 先 ...
- django分页功能实现
django内置的分页功能需要引入内置模块from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger Pagina ...
- [oldboy-django][2深入django]分页功能
1 django自带分页 1.1 分页模板 <!DOCTYPE html> <html lang="en"> <head> <meta c ...
- django分页功能
采用django自带的Paginator功能 from django.core.paginator import Paginator food = foodInfo.objects.filter(fo ...
- Django自定制分页功能
URL: """django_paginner URL Configuration The `urlpatterns` list routes URLs to views ...
- django 分页组件
一.仿django分页功能自己实现 urls.py 1 2 3 4 5 6 7 8 9 from django.conf.urls import url from django.contrib i ...
- python_way day18 html-day4, Django路由,(正则匹配页码,包含自开发分页功能), 模板, Model(jDango-ORM) : SQLite,数据库时间字段插入的方法
python_way day18 html-day4 1.Django-路由系统 - 自开发分页功能 2.模板语言:之母板的使用 3.SQLite:model(jDango-ORM) 数据库时间字 ...
随机推荐
- [cogs731] [网络流24题#6] 最长递增子序列 [网络流,最大流]
[转hzwer]第一问是LIS,动态规划求解,第二问和第三问用网络最大流解决.首先动态规划求出F[i],表示以第i位为开头的最长上升序列的长度,求出最长上升序列长度K.1.把序列每位i拆成两个点< ...
- shell函数返回值
1.用return作为函数的退出状态,然后通过echo $?来得到函数返回值,注意,return返回的值限定为0-255. 例子: #! /bin/bash sum() { let "z=$ ...
- 高速搞定Eclipse的语法高亮
编辑器背景颜色 打开Preferences 选择TextEditors 语法高亮配色 这里以Javascript为例. 选择Javascript 点击右边圈出的绿色框里的选项,适当改动颜色, 高亮色參 ...
- Latex 排版技巧 1——数学公式对齐
在我们排版数学推导式时,非常多时候我们希望可以让公式的等号对齐 这样更接近人的数学推导习惯 例如以下图效果图 使用 begin{aligned} end{aligned}将所需对齐的数学公式代码块包起 ...
- linux下启动jekins报错
进入默认安装目录,执行java -jar jekins.war 启动使用端口号: java -jar jenkins.war --httpPort=8085,即启动完成 这个有个弊端,关闭后下次还得这 ...
- 蒟蒻的数位DP专题总结
BZOJ 1026: [SCOI2009]windy数: 题目链接: http://www.lydsy.com/JudgeOnline/problem.php?id=1026 d ...
- FreeBSD内核之中的一个 ALQ机制的使用
背景: 笔者由于一个项目,这段时间在使用FreeBSD进行内核模块的编程. 之前做过一段时间的Linux下驱动模块编程.对Linux下的模块编程还算熟悉. 如今突然转到FreeBSD下.尽管Linux ...
- html5 历史管理
1.onhashchange:改变hash值来进行历史管理. <!DOCTYPE html> <html> <head> <meta charset=&quo ...
- flash 遮住 div 解决办法
被遮盖的div 下面的代码 <!--列表菜单--> <div id="opreationmenu" style="posit ...
- 用xftp从win7系统传输一些必要的文件到Linux
新建会话,主机名为Linux系统的ip地址,选用SFTP协议,选用UTF-8编码格式 1.安装JDK 切换到java路径下 卸载openJDK: 用rpm -qa |grep java指令查看 用rp ...