Django+BootstrapTable实现表格分页
models.py:
from django.db import models
# Create your models here.
class Article(models.Model):
title = models.CharField('标题', max_length=64)
content = models.TextField('内容', null=True)
create_time = models.DateTimeField('发布时间')
class Meta:
verbose_name = '文章'
verbose_name_plural = '文章'
def __str__(self):
return self.title
admin.py:
from django.contrib import admin
from .models import Article
class ArticleAdmin(admin.ModelAdmin):
list_display = ('id', 'title', 'create_time', )
list_display_link = ('title',)
# Register your models here.
admin.site.register(Article, ArticleAdmin)
views.py:
#--*--encoding='utf8'--*--
from django.shortcuts import render
from django.http import HttpResponse
from .models import Article
import json
from django.views.decorators.csrf import csrf_exempt
# Create your views here.
def index(request):
return render(request, 'index.html')
@csrf_exempt
def all(request):
if request.method == 'GET':
pageSize = int(request.GET.get('pageSize'))
pageNumber = int(request.GET.get('pageNumber'))
searchText = request.GET.get('searchText')
sortName = request.GET.get('sortName')
sortOrder = request.GET.get('sortOrder')
total = Article.objects.all().count()
articles = Article.objects.order_by('-id')[(pageNumber-1)*pageSize:(pageNumber)*pageSize]
rows = []
data = {"total": total, "rows": rows}
for article in articles:
rows.append({'id': article.id, 'title': article.title, 'content': article.content})
return HttpResponse(json.dumps(data), content_type="application/json")
def add(request):
return render(request, 'add.html')
@csrf_exempt
def deal(request):
if request.method == "POST":
title = request.POST.get('title')
content = request.POST.get('content')
article = Article(title = title, content = content)
article.save()
ret = {"ret": 0, 'title': title, 'content': content}
return HttpResponse(json.dumps(ret))
def article(request, article_id):
article = Article.objects.get(pk = article_id)
return render(request, 'article.html', {'article': article})
def get_an_apple(request):
resp = {'errorcode': 100, 'detail': 'Get success'}
return HttpResponse(json.dumps(resp), content_type="application/json")
@csrf_exempt
def delete(request):
return_dict = {"ret": True, "errMsg": "", "rows": [], "total": 0}
article_id = request.POST.get('id')
article = Article.objects.get(id = article_id)
article.delete()
return HttpResponse(json.dumps(return_dict))
其中all函数是关键。
index.html:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
{% load staticfiles %}
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="{% static 'libs/bootstrap/css/bootstrap.min.css' %}">
<link rel="stylesheet" href="{% static 'libs/toastr/css/toastr.css' %}">
<link rel="stylesheet" href="{% static 'libs/bootstrap-table-master/bootstrap-table.css' %}">
<script src="{% static 'libs/jquery/jquery-1.11.2.min.js' %}"></script>
<script src="{% static 'libs/bootstrap/js/bootstrap.min.js' %}"></script>
<script src="{% static 'libs/toastr/js/toastr.min.js' %}"></script>
<script src="{% static 'libs/bootstrap-table-master/bootstrap-table.js' %}"></script>
<script src="{% static 'libs/bootstrap-table-master/locale/bootstrap-table-zh-CN.js' %}"></script>
<title>Django后台管理系统</title>
</head>
<body>
<div style="padding: 20px;">
<table id="articles-table" data-toggle="table" class="table table-bordered table-striped"></table>
</div>
<script>
var $articlesTable = $('#articles-table').bootstrapTable('destroy').bootstrapTable({
url: '/article/all/',
method: 'GET',
dataType: "json",
uniqueId: 'id',
striped: false,
cache: false,
sortName: 'id',
sortable: false,
sortOrder: 'desc',
sidePagination: "server",
undefinedText: '--',
singleSelect: false,
toolbar: '#soft-toolbar',
search: false,
strictSearch: true,
clickToSelect: true,
pagination: true,
pageNumber: 1,
pageSize: 5,
pageList: [5, 10, 20, 50, 100],
paginationPreText: "上一页",
paginationNextText: "下一页",
queryParamsType: "",
queryParams : function (params) {
var temp = {
'pageSize' : params.pageSize,
'pageNumber' : params.pageNumber,
'searchText': params.searchText,
'sortName': params.sortName,
'sortOrder': params.sortOrder
};
return temp;
},
columns: [
{
checkbox: true
},{
field: 'title',
title:'标题',
width: '12%'
},{
field: 'content',
title:'内容',
width: '62%'
},{
field: 'create_time',
title:'创建时间',
width: '10%'
},{
title:'删除',
formatter: function(value, row, index){
return '<button type="button" class="btn btn-primary btn-xs" onclick="deleteData(' + row.id + ')">删除</button>';
}
}
],
onLoadError: function () {
toastr.error("数据加载失败!", "错误提示");
},
onClickRow: function (row, $element) {
// EditViewById(id, 'view');
}
});
function deleteData(id){
$.ajax({
type: "POST",
url: '/article/delete/',
data: {id: id},
dataType: "json",
success: function(data){
console.log(data);
if(data.ret){
toastr.success('删除成功!', '成功提示');
$articlesTable.bootstrapTable('refresh');
}
},
error: function(data){
console.log(data);
}
});
}
</script>
</body>
</html>
以上四个文件中,views.py和index.html文件是关键。
Django+BootstrapTable实现表格分页的更多相关文章
- 基于Metronic的Bootstrap开发框架经验总结(18)-- 在代码生成工具Database2Sharp中集成对Bootstrap-table插件的分页及排序支持
在我们开发系统界面,包括Web和Winform的都一样,主要的界面就是列表展示主界面,编辑查看界面,以及一些辅助性的如导入界面,选择界面等,其中列表展示主界面是综合性的数据展示界面,一般往往需要对记录 ...
- bootstrap table + spring + springmvc + mybatis 实现从前端到后端的表格分页
1.使用准备 前台需要的资源文件,主要有Bootstrap3相关css.js以及bootstrap Table相关css.js: <-- 样式 --> <link rel=" ...
- 关于bootstrap-table服务端分页问题
昨天项目中涉及到了前端表格分页问题.数据一共有1万多条,所以选择了后端分页. 之前用的都是前端分页,第一次使用后端分页.网上也找到了一些例子,最后做出来了. 这里用的是bootstrap-table插 ...
- 基于Vue.js的表格分页组件
有一段时间没更新文章了,主要是因为自己一直在忙着学习新的东西而忘记分享了,实在惭愧. 这不,大半夜发文更一篇文章,分享一个自己编写的一个Vue的小组件,名叫BootPage. 不了解Vue.js的童鞋 ...
- python 学习笔记十八 django深入学习三 分页,自定义标签,权限机制
django Pagination(分页) django 自带的分页功能非常强大,我们来看一个简单的练习示例: #导入Paginator>>> from django.core.p ...
- Vue.js的表格分页组件
转自:http://www.cnblogs.com/Leo_wl/p/5522299.html 有一段时间没更新文章了,主要是因为自己一直在忙着学习新的东西而忘记分享了,实在惭愧. 这不,大半夜发文更 ...
- Angular.js+Bootstrap实现表格分页
最近一直学习Angular.js,在学习过程中也练习了很多的Demo,这里先贴一下表格+分页. 先上图看看最终结果: 不得不说Angular.js代码风格很受人欢迎,几十行代码清晰简洁的实现了上面的功 ...
- 如何用angularjs制作一个完整的表格之二__表格分页功能
接上一次,这次主要介绍表格分页功能,由于项目需要这个案例是关于前端分页的方式,现在很少会这么用了,但如有需要可以参考其中的思路 html: 1.通过UL来展示页标,其中每个页标的li是通过异步加载从获 ...
- 【转】基于jquery的无刷新表格分页
效果图 css样式 <style> html,body{margin: 0;padding:0} a:focus {outline: none;} /* 通用表格显示 */ table, ...
随机推荐
- Leetcode之动态规划(DP)专题-72. 编辑距离(Edit Distance)
Leetcode之动态规划(DP)专题-72. 编辑距离(Edit Distance) 给定两个单词 word1 和 word2,计算出将 word1 转换成 word2 所使用的最少操作数 . 你可 ...
- 【计算机视觉】背景建模--Vibe 算法优缺点分析
一.Vibe 算法的优点 Vibe背景建模为运动目标检测研究邻域开拓了新思路,是一种新颖.快速及有效的运动目标检测算法.其优点有以下两点: 1.思想简单,易于实现.Vibe通常随机选取邻域20个样本为 ...
- 【Linux-驱动】在sysfs下创建对应的class节点---class_create
在编写简单字符设备驱动的时候,可以使用宏class_create在sysfs下创建对应的class节点,便于用户管理设备: #define class_create(owner, name) \ ({ ...
- Struts 2访问Servlet API
在servlet中可以通过servlet API来获取Session,在Struts中如何获取Session呢? 解析:将用户名放入session 两种方案 1. 与Servlet API解耦的访问方 ...
- JAVA重载和数组
Java 重载:相同的方法名,但参数个数或者类型不一样的情况下,自动执行不同的方法 数组: int[] array=new int[5]; System.out.println(array); ...
- java native本地方法详解(转)
文章链接出处: 详解native方法的使用 自己实现一个Native方法的调用 JNI 开始本篇的内容之前,首先要讲一下JNI.Java很好,使用的人很多.应用极 广,但是Java不是完美的.Java ...
- Buy a Ticket CodeForces - 938D (dijkstra)
大意: n节点无向图, 点$i$到点$j$的花费为$2dis(i,j)+a[j]$, 对于每个点, 求最少花费. 每条边权翻倍, 源点S向所有点$i$连边, 权为$a[i]$, 答案就为$S$到每个点 ...
- java 给定一个日期期间 返回形如Mar 2015 3/20-3/31的数据
最近一个项目中有个前台对于表头要求: 给定一个日期期间返回形如 Mar 2015 3/20-3/31Apr 2015 4/1-4/30 这样的月年数据,简单的写了下代码,暂时没想到更好的办法 例如传进 ...
- Asp.net4.5未在web服务器上注册
在使用vs2012打开项目时,显示Asp.net4.5未在web服务器上注册?是由于没有下载一个补丁的原因,只需下载安装补丁 VS11-KB3002339.exe 下载地址:https://downl ...
- k8s部分名称解释
k8s部分名词解释 NameSpace:命名空间 Namespace是对一组资源和对象的抽象集合,比如可以用来将系统内部的对象划分为不同的项目组或用户组.常见的pods, services, repl ...