django【原生分页】
1.urls.py
url(r'^page2/',views.page2),
2.views.py
from django.core.paginator import Paginator,PageNotAnInteger,EmptyPage
def page2(request):
customer_list=models.UserType.objects.all()
paginator=Paginator(customer_list,10)
page = request.GET.get('p')
try:
customer_objs=paginator.page(page)
except PageNotAnInteger:
customer_objs=paginator.page(1)
except EmptyPage:
customer_objs=paginator.page(paginator.num_pages)
return render(request,'page2.html',{'customer_list':customer_objs})
3.page2.html
{% load custom_tags %}
<style>
.active{
background: gold;
}
</style>
<table>
<thead>
<tr>
<th>ID</th>
<th>name</th>
</tr>
</thead>
<tbody>
{% for item in customer_list %}
<tr>
<td>{{ item.id }}</td>
<td>{{ item.caption }}</td>
</tr>
{% endfor %}
</tbody>
</table>
<br>
<div class="pagination">
<nav>
{% if customer_list.has_previous %}
<span class="#"><a href="?p={{ customer_list.previous_page_number }}" aria-label="Previous"><span aria-hidden="true">«</span></a></span>
{% endif %}
{% for page_num in customer_list.paginator.page_range %}
{% guess_page customer_list.number page_num %}
{% endfor %}
{% if customer_list.has_next %}
<span class="#"><a href="?p={{ customer_list.next_page_number }}" aria-label="Next"><span aria-hidden="true">»</span></a></span>
{% endif %}
</nav>
</div>
4.自定义模板函数
app01/templatetags/custom_tags.py
from django import template
from django.utils.html import format_html
register=template.Library()
@register.filter
def _lower(val):
print('-----val',val)
return val.lower()
@register.simple_tag
def guess_page(current_page,loop_num):
offset=abs(current_page-loop_num)
if offset < 3:
if current_page == loop_num:
page_ele='<span class="active"><a href="?p=%s">%s</a></span>'%(loop_num,loop_num)
else:
page_ele='<span class=""><a href="?p=%s">%s</a></span>'%(loop_num,loop_num)
return format_html(page_ele)
else:
return ""
django【原生分页】的更多相关文章
- 第二十一章 Django的分页与cookie
第二十一章 Django的分页与cookie 第一课 模板 1.模板的继承 在Template目录下新建模板master.html <!DOCTYPE html> <html lan ...
- Python Django的分页,Form验证,中间件
本节内容 Django的分页 Form 中间件 1 Django 分页 1.1 Django自带的分页 1.首先来看下我的测试数据环境 ############ models.py ######### ...
- Django----列表分页(使用Django的分页组件)
目的:是为了实现列表分页 1.定制URL http://127.0.0.1:8000/blog/get_article?page=3之前定制URL是在url后增加了/id,这次使用参数的方式 def ...
- django原生sql查询如何返回字典格式
django原生sql查询,默认返回的是元祖.如果想返回字典格式,需要自行封装: http://www.360doc.com/content/17/0802/11/9200790_676042880. ...
- Django—自定义分页
分页功能在每个网站都是必要的,对于分页来说,其实就是根据用户的输入计算出应该显示在页面上的数据在数据库表中的起始位置. 确定分页需求: 1. 每页显示的数据条数 2. 每页显示页号链接数 3. 上一页 ...
- reverse(两种反向生成url django原生形式和rest_framework中版本的形式)
reverse(两种反向生成url django原生形式和rest_framework中版本的形式) views.py from django.shortcuts import render,Http ...
- 使用Ajax (put delete ) django原生CBV 出现csrf token解决办法
原因 django原生CBV中对于 Ajax put 或 delete 请求进行封装时,会把请求数据放在 request.body里, 所以获取不到csrf token 方式一: 关闭csrf 中间件 ...
- Django自定义分页并保存搜索条件
Django自定义分页并保存搜索条件 1.自定义分页组件pagination.py import copy class Pagination: def __init__(self, current_p ...
- Django DRF 分页
Django DRF 分页 分页在DRF当中可以一共有三种,可以通过setttings设置,也可也通过自定义设置 PageNumberPagination 使用URL http://127.0.0.1 ...
- django之分页,纯python代码
Django中分页 py文件代码 """ 自定义分页组件 可以返回分页的数据和分页的HTML代码 """ from django.http ...
随机推荐
- linux TZ格式
man tzset可以很清楚了解时区设置格式,共3种: The first format is used when there is no daylight saving time in the lo ...
- android Bitmap用法总结(转载)
Bitmap用法总结1.Drawable → Bitmappublic static Bitmap drawableToBitmap(Drawable drawable) {Bitmap bitmap ...
- Django - 安装wagtail
感觉这个CMS系统不错,试用了一下,记录过程: 1. 安装Virtualenv mkdir wagtail virtualenv --no-site-packages --python=3.5 wag ...
- API 接口设计中 Token 类型的分类与设计
在实际的网站设计中我们经常会遇到用户数据的验证和加密的问题,如果实现单点,如果保证数据准确,如何放着重放,如何防止CSRF等等 其中,在所有的服务设计中,都不可避免的涉及到Token的设计. 目前,基 ...
- RedHat Ent 6.5 64bit编译安装hadoop2.4.1
RedHat Ent 6.5 64bit编译安装hadoop2.4.1 感谢原帖:http://blog.csdn.net/w13770269691/article/details/16883663/ ...
- visio中设置下标
下标:ctrl+"=" 上标:ctrl+shift+"="
- Python_selenium之获取当前页面的href属性,id属性,图片信息和截全屏
Python_selenium之获取当前页面的href属性,id属性,图片信息和截全屏 一. 获取当前页面的全部信息 1. 图片信息包括图片名称.图片大小等信息 2. 只需将图片信息打印出来(ima ...
- iOS --转载 NSRange 和 NSString 详解
一.NSRange 1.NSRange的介绍 NSRange是Foundation框架中比较常用的结构体, 它的定义如下: typedef struct _NSRange { NSUInteger l ...
- pandas基础: Series和DataFrame的简单介绍
一.pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主要目的是为了数据分析.它提供了大量高级的数据结构和对数据处理的方法. pandas 有两个主要的数据结构 ...
- 使用apt-get命令,出现“无法获得锁”的问题
参考地址 http://blog.csdn.net/namecyf/article/details/7297168