Django 中的自定义分页标签
目录结构:

1.在应用下,migrations的同级目录创建templatetags目录(主要两个文件,包含__init__.py)
2.创建分页标签(pagetag.py)
#!/usr/bin/env python
# _*_ coding:utf-8 _*_ from django import template
from django.utils.html import format_html # 注册标签
register = template.Library()
@register.simple_tag
def circle_page(curr_page,loop_page):
offset = abs(curr_page - loop_page)
if offset < 3:
if curr_page == loop_page:
page_ele = '<li class="active"><a href="?page=%s">%s</a></li>'%(loop_page,loop_page)
else:
page_ele = '<li><a href="?page=%s">%s</a></li>'%(loop_page,loop_page)
return format_html(page_ele)
else:
return ''
3.在view.py中将数据分页处理
# 数据分析
def analysisMovie(request):
movies = AnalysisMovie.objects.all().filter(is_delete='')
# 分页
paginator = Paginator(movies, 25, 2) # Show 25 contacts per page
page = request.GET.get('page')
try:
contacts = paginator.page(page)
except PageNotAnInteger:
# If page is not an integer, deliver first page.
contacts = paginator.page(1)
except EmptyPage:
# If page is out of range (e.g. 9999), deliver last page of results.
contacts = paginator.page(paginator.num_pages)
context = {'contacts': contacts}
return render(request,'analysis.html',context=context)
4.在url.py中设置指向
url(r'^analysis/$', views.analysisMovie),
5.在analysis.html中数据展示(部分)
{% load pagetag %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>数据分析</title>
<!-- 全局样式 -->
<link rel="stylesheet" href="/static/css/global.css">
<!-- 导航菜单样式 -->
<link rel="stylesheet" href="/static/navigation.css">
<!-- 数据展现表格样式 -->
<link rel="stylesheet" href="/static/table.css">
<!-- bootstrap样式 -->
<link rel="stylesheet" href="/static/bootstrap-3.3.7-dist/css/bootstrap.css">
<link rel="stylesheet" href="/static/bootstrap-3.3.7-dist/css/bootstrap-theme.min.css">
<script type="text/javascript" src="/static/bootstrap-3.3.7-dist/js/bootstrap.min.js"></script>
</head>
<body>
<div class="panel-body">
<form>
<div class="input-group col-md-3" style="margin-top:0px;positon:relative">
<input type="text" class="form-control" placeholder="请输入明星"/>
<span class="input-group-btn">
<button class="btn btn-info btn-search">查找</button>
<button class="btn btn-info btn-search" style="margin-left:3px">添加</button>
</span>
</div>
<table id="hor-minimalist-a" align="center">
<tr>
<th>演员</th>
<th>电影名称</th>
<th>评分</th>
<th>类型</th>
<th>评论数</th>
</tr>
{% for movie in contacts %}
<tr>
<td>
{{ movie.actor_name }}
</td>
<td>
{{ movie.movie_name }}
</td>
<td>
{% if movie.movie_mark == 0 %}
暂无评分
{% else %}
{{ movie.movie_mark }}分
{% endif %}
</td>
<td>
{{ movie.movie_type }}
</td>
<td>
{% if movie.movie_rating_num == '' %}
暂无评论
{% else %}
{{ movie.movie_rating_num }}
{% endif %}
</td>
</tr>
{% endfor %}
</table>
<!-- 分页 -->
<nav aria-label="Page navigation">
<ul class="pagination">
{% if contacts.has_previous %}
<li>
<a href="?page={{ contacts.previous_page_number }}" aria-label="Previous">
<span aria-hidden="true">上一页</span>
</a>
<a href="?page=1" aria-label="First">
<span aria-hidden="true">首页</span>
</a>
</li>
{% endif %}
{% for pg in contacts.paginator.page_range %}
{% circle_page contacts.number pg %}
{% endfor %}
{% if contacts.has_next %}
<li>
<a href="?page={{ contacts.paginator.num_pages }}" aria-label="Last">
<span aria-hidden="true">尾页</span>
</a>
<a href="?page={{ contacts.next_page_number }}" aria-label="Next">
<span aria-hidden="true">下一页</span>
</a>
{% endif %}
</li>
</ul>
</nav>
</form>
</div>
6.效果


Django 中的自定义分页标签的更多相关文章
- Struts2自定义标签4自定义分页标签
第一步:webroot/web-inf下的str.tld文件 <?xml version="1.0" encoding="UTF-8"?> < ...
- Django中的自定义过滤器
一.为什么要自定义Django中的自定义过滤器:Django中提供了很多内置的过滤器和标签,详见链接django官网,主要有以下几个: autoescape(自动转义)block(模板继承)csrf_ ...
- 第三百一十四节,Django框架,自定义分页
第三百一十四节,Django框架,自定义分页 自定义分页模块 #!/usr/bin/env python #coding:utf-8 from django.utils.safestring impo ...
- Java自定义分页标签的实现
主要字段含义: 页号 pagaNo页面大小 pageSize总记录条数 recordCount计算本次一共分多少页 myPageSize页号显示开始 start 页号显示结束 end PageTag需 ...
- 自定义分页标签,并使分页标签能获得url中的参数
如题,要实现一个分页功能,其次,要让分页标签“智能一点”,在分页时能自动带上url后面的参数 <tag> <description>分页标签</description&g ...
- python 全栈开发,Day87(ajax登录示例,CSRF跨站请求伪造,Django的中间件,自定义分页)
一.ajax登录示例 新建项目login_ajax 修改urls.py,增加路径 from app01 import views urlpatterns = [ path('admin/', admi ...
- (转)java web自定义分页标签
转载至http://liuxi1024.iteye.com/blog/707784 效果如图: 1.JSP规范1.1版本后增加了自定义标签库.实现自定义标签的步骤 (1)开发自定义标签处理类. (2) ...
- django cookie session 自定义分页
cookie cookie的由来 http协议是无状态的,犹如人生若只如初见,每次都是初次.由此我们需要cookie来保持状态,保持客户端和服务端的数据通信. 什么是cookie Cookie具体指的 ...
- Django模板之自定义过滤器/标签/组件
自定义步骤: 1. 在settings中的INSTALLED_APPS配置当前app,不然django无法找到自定义的simple_tag. 2. 在app应用中创建templatet ...
随机推荐
- symbolicatecrash 使用方法
symbolicatecrash 使用方法 1-找到symbolicatecrash find /Applications/Xcode.app -name symbolicatecrash -type ...
- STL容器分析--vector
vector是一种动态数组,是基本数组的类模板. vector,支持随机访问.在数据结构上,属于顺序线性表. 而且,由于是动态数组,
- [J2EE基础]初识JSP和Servlet
近期须要用到J2EE,就開始学习与J2EE相关的知识了. JSP是一种Javaserver端技术,它用于在网页上显示动态内容. Tomcat相关知识 JSP的运行过程 JSP的页面构成元素 JSP的凝 ...
- python DataFrame获取行数、列数、索引及第几行第几列的值
print df.columns.size#列数 2 print df.iloc[:,0].size#行数 3 print df.ix[[0]].index.values[0]#索引值 0 print ...
- pdo连接mysql操作方法
PDO常用方法: PDO::query()主要用于有记录结果返回的操作(PDOStatement),特别是select操作. PDO::exec()主要是针对没有结果集合返回的操作.如insert,u ...
- Android Service演义
摘要: 本文基于Android 5.1代码,介绍了Android Service的运作机理.按理说,网上此类文章已经很多了,本不需我再赘述.但每个人理解技术的方式多少会有所不同,我多写一篇自己理解的s ...
- Java接口的异常设计
一.问题的提出 疑惑1:在设计接口的时,对于接口方法何时需要声明抛出受检异常或者说所有的接口方法最后都声明抛出受检异常? 以下是代码片段: public interface xx{ public ...
- makefile之if函数
#if 函数的语法是: #$(if <condition>,<then-part> ) #或 #$(if <condition>,<then-part> ...
- iOS开发值NSUserDefaults类概述
NSUserDefaults类概述 NSUserDefaults类为和默认的系统进行交互提供了一个系统编程接口.默认的系统允许一个应用来定制它的行为以适应用户的喜好.例如,你可以允许用户去决定你的应用 ...
- 怎么来爬取代理服务器ip地址?
一年前突然有个灵感,想搞个强大的网盘搜索引擎,但由于大学本科学习软件工程偏嵌入式方向,web方面的能力有点弱,不会jsp,不懂html,好久没有玩过sql,但就是趁着年轻人的这股不妥协的劲儿,硬是把以 ...