目前总结了2种方法:

1. Ajax 分页

尼玛各种google,stackoverflow,搞了好久才总结出这个,之前使用Pagination tag loading的方式不好用,并且不能进行ajax提交请求的页面无刷新的方式去分页

1.view.py

 from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
from django.shortcuts import render
def xxx(request):
rows = cursor.fetchall()
paginator = Paginator(rows, 15) //how many items per page
page = request.POST.get('page')
try:
rows = paginator.page(page)
except PageNotAnInteger:
# If page is not an integer, deliver first page.
rows = paginator.page(1)
except EmptyPage:
# If page is out of range (e.g. 9999), deliver last page of results.
rows = paginator.page(paginator.num_pages)
return render(request,'ajax_page.html', {'rows': rows})

2. ajax_page.html

<div class="pagination">
<span class="step-links">
{% if rows.has_previous %}
<a id='pre' href="#">previous</a>
{% endif %}
<span class="current">
Page {{ rows.number }} of {{ rows.paginator.num_pages }}.
</span>
{% if rows.has_next %}
<a id="next" href="#" >next</a>
{% endif %}
</span>
</div>

3. JS -Ajax 部分

 {%block js%}
<script type="text/javascript">
$('.step-links #next').click(function(){
{% if rows.has_next %}
page={{ rows.next_page_number }};
{% endif %}
$.ajax({type:"POST",url:"/submitjobs/",data:{"page":page}, success:function(data){
$("#jobs_table").html(data);
}
})
});
$('.step-links #pre').click(function(){
{% if rows.has_previous %}
page={{ rows.previous_page_number }};
      {% endif %}
$.ajax({type:"POST",url:"/submitjobs/",data:{page":page}, success:function(data){
$("#jobs_table").html(data);
}
})
});
</script>
{%endblock%}

2. Datatable - plugin for Jquery (http://datatables.net/)

这种方法quick and dirty 唯一缺点就是不适用海量数据一般几百来页也是可以的,只需在js中调用dataTable方法就好。

数据填充已经在方法1中使用render.request将数据载入table.

{%block js%}
<script type="text/javascript">
$('#job_table').dataTable();
</script>
{%endblock%}

Django - Ajax分页的更多相关文章

  1. [jQuery]jQuery DataTables插件自定义Ajax分页实现

    前言 昨天在博客园的博问上帮一位园友解决了一个问题,我觉得有必要记录一下,万一有人也遇上了呢. 问题描述 园友是做前端的,产品经理要求他使用jQuery DataTables插件显示一个列表,要实现分 ...

  2. ThinkPHP 整合Bootstrap Ajax分页

    ThinkPHP Ajax分页代码 publicfunction index() { $where=array(); $name = I('name'); if(!empty($name)){ $wh ...

  3. yii2的分页和ajax分页

    要想使用Yii分页类第一步:在控制器层加载分页类 use yii\data\Pagination;第二步: 使用model层查询数据,并用分分页,限制每页的显示条数$data = User::find ...

  4. [js开源组件开发]ajax分页组件

    ajax分页组件 我以平均每一周出一个开源的js组件为目标行动着,虽然每个组件并不是很庞大,它只完成某一个较小部分的工作,但相信,只要有付出,总会得到回报的.这个组件主要完成分页的工作. 这张图里显示 ...

  5. MvcPager 概述 MvcPager 分页示例 — 标准Ajax分页 对SEO进行优化的ajax分页 (支持asp.net mvc)

    该示例演示如何使用MvcPager最基本的Ajax分页模式. 使用AjaxHelper的Pager扩展方法来实现Ajax分页,使用Ajax分页模式时,必须至少指定MvcAjaxOptions的Upda ...

  6. MVC - 11(下)jquery.tmpl.js +ajax分页

    继续 mvc-11(上).dto:http://www.cnblogs.com/tangge/p/3840060.html jquery.tmpl.js 下载:http://pan.baidu.com ...

  7. laraver ajax分页

    ,设置分页容器参考laraver手册 我的设置代码如下: ,控制器调用的方法:代码如下 );         include($path);         $content = ob_get_cle ...

  8. PHP+jQuery 长文章分页类 ( 支持 url / ajax 分页方式 )

    /* ******* 环境:Apache2.2.8 ( 2.2.17 ) + PHP5.2.6 ( 5.3.3 ) + MySQL5.0.51b ( 5.5.8 ) + jQuery-1.8 **** ...

  9. PHP+jQuery 列表分页类 ( 支持 url 分页 / ajax 分页 )

    /* ******* 环境:Apache2.2.8 ( 2.2.17 ) + PHP5.2.6 ( 5.3.3 ) + MySQL5.0.51b ( 5.5.8 ) + jQuery-1.8.3.mi ...

随机推荐

  1. springboot整合Ehcache

    首先引入maven包: <dependency> <groupId>org.springframework.boot</groupId> <artifactI ...

  2. Python2 socket 多线程并发 ThreadingTCPServer Demo

    # -*- coding:utf-8 -*- from SocketServer import TCPServer, StreamRequestHandler import traceback cla ...

  3. JavaScript Promise异步实现章节的下载显示

    Links: JavaScript Promise:简介 1.一章一章顺序地下载显示下载显示 使用Array.reduce()和Promise.resolve()将各章的下载及显示作为整体串联起来. ...

  4. Scalability, Availability & Stability Patterns

    https://blog.csdn.net/ajian005/article/details/6191814   一 自我有要求的读者应该提出问题:(研习:掌握层次:)能力级别:不会(了解)——领会( ...

  5. $ListView的优化机制和滑动时数据错乱的讨论

    Refer:http://www.myexception.cn/mobile/1612364.html (一)Android ListView的基本用法 1.创建一个实体类Person,为其添加Get ...

  6. keepalived nginx 主备配置

    keepalived  nginx 主备配置(多主多备同理) 1.Nginx服务安装 nginx 不区分主备,在两台服务上安装两个即可. 安装参考:https://www.cnblogs.com/zw ...

  7. php获取MAC地址

    /** *获取mac地址 **/ class GetMacAddr{ var $return_array = array(); // 返回带有MAC地址的字串数组 var $mac_addr; fun ...

  8. nodejs安装,配置环境,使用express建立一个新项目

    1.下载nodejs安装包 去nodejs官网下载最新版本就行,网址:http://nodejs.cn/download/,点击自己适用的系统,自动下载跟电脑操作系统位数符合的安装包, 下载下来安装包 ...

  9. ACM训练小结-2018年6月14日

    于恢复性训练Day2情况如下:https://vjudge.net/contest/234651    先看A题,读懂题意,没有想明白,码完后连续多次WA,后找到错误AC.    对B题,发现其是一个 ...

  10. Win32 API编程:WinMain无法重载函数或_tWinMain无法重载

    #include "windows.h" #include "tchar.h" int APIENTRY _tWinMain( HINSTANCE hInsta ...