Django批量插入数据和分页器
一、ajax结合sweetalert实现删除按钮动态效果
可以将sweetalert动态效果绑定在按钮的js事件上。可以使alert触发框好看一点。
当ajax需要对数据进行修改时,可以通过alert框进行确认。
// 可以在我的github上复制
$('.del').click(function () {
let $btn = $(this);
swal({
title: "确定要删除这条数据吗?",
text: "删了就真没了!就得跑路了!!",
type: "warning",
showCancelButton: true,
confirmButtonClass: "btn-danger",
confirmButtonText: "确认删除!",
cancelButtonText: "取消!",
closeOnConfirm: false,
closeOnCancel: false,
showLoaderOnConfirm: true // 等待后端处理时间 。。。动画
},
function (isConfirm) {
if (isConfirm) {
$.ajax({
url:'',
type:'post',
data:{'delete_id':$btn.attr('userId')},
success:function (data) {
if (data.code == 1000){
swal("数据已经删除!",data.msg,"warning");
$btn.parent().parent().remove()
}else {
swal("有Bug!","发生了未知的错误!","error");
}
}
});
} else {
swal("数据安全了 :)","别让别人发现你在干嘛 :)", "success");
}
});
})
二、bulk_create批量插入数据
1. 一条一条插入
很慢
def test(request):
for i in range(1000):
models.Test.objects.create(title=f'第{i}本书')
book_queryset = models.Test.objects.all()
return render(request,'test.html',locals())
2. 批量插入
很快
def test(request):
book_list = []
for i in range(10000):
book_list.append(models.Test(title=f'第二次第{i}本书'))
models.Test.objects.bulk_create(book_list) # 将整个列表插入数据库
book_queryset = models.Test.objects.all()
return render(request,'test.html',locals())
两者速度差距很大!!
三、自定义分页器
代码不需要掌握,只需要掌握推导思路。
需要掌握自定义分页器的使用方法!
后端:
# 测试批量插入数据
def test(request):
# 推导思路
# for i in range(1000):
# models.Test.objects.create(title=f'第{i}本书')
# book_list = []
# for i in range(10000):
# book_list.append(models.Test(title=f'第二次第{i}本书'))
# models.Test.objects.bulk_create(book_list) # 将整个列表插入数据库
# book_queryset = models.Test.objects.all()
# all_count = book_queryset.count()
# # 一页展示的数目
# per_page_num = 10
# all_page_num,more = divmod(all_count,per_page_num)
# if more:
# all_page_num += 1 # 确定到底需要多少页来展示
#
# # 用户想查看的当前页
# current_page = request.GET.get('page', 1)
# current_page = int(current_page)
#
# # 首尾页面
# start_page = (current_page - 1) * per_page_num
# end_page = current_page * per_page_num
#
# html = ''
# page_num = current_page
# if current_page<6:
# page_num = 6
# for i in range(current_page-3,current_page+4):
# if current_page == i:
# html += f'<li class="active"><a href="?page={i}">{i}</a></li>'
# else:
# html += f'<li><a href="?page={i}">{i}</a></li>'
# book_queryset = book_queryset[start_page:end_page]
# return render(request,'test.html',locals())
#-------------------------------------------------------------------
# 使用方法
book_queryset = models.Test.objects.all() # 你想要的分页展示的数据
current_page = request.GET.get('page',1) # 获取当前页
all_count = book_queryset.count() # 统计数据的总条数
page_obj = Pagination(current_page=current_page,all_count=all_count,per_page_num=15,pager_count=7) # 生成分页器对象
page_queryset = book_queryset[page_obj.start:page_obj.end] # 对数据进行切片
return render(request,'test.html',locals())
前端:
{% for book in page_queryset %}
<p>{{ book.title }}</p>
{% endfor %}
{{ page_obj.page_html|safe }} # 自动渲染页面及样式
Django批量插入数据和分页器的更多相关文章
- [Django高级之批量插入数据、分页器组件]
[Django高级之批量插入数据.分页器组件] 批量插入数据 模板层models.py from django.db import models class Books(models.Model): ...
- django与ajax:ajax结合sweetalter ,批量插入数据 ;分页器组件
目录 一.ajax结合sweetalter 二.bulk_create批量插入数据 三.简易版分页器推导 1. 推导步骤 四.自定义分页器的使用 1. 自定义分页器模板 2. 使用方法 (1)后端代码 ...
- django----Sweetalert bulk_create批量插入数据 自定义分页器
目录 一.Sweetalert使用AJAX操作 二.bulk_create 三.分页器 divmod 分页器组件 自定义分页器的使用 一.Sweetalert使用AJAX操作 sweetalert ...
- django ajax 及批量插入数据 分页器
``` Ajax 前端朝后端发送请求都有哪些方式 a标签href GET请求 浏览器输入url GET请求 form表单 GET/POST请求 Ajax GET/POST请求 前端朝后端发送数据的编码 ...
- Django orm 实现批量插入数据
Django ORM 中的批量操作 在Hibenate中,通过批量提交SQL操作,部分地实现了数据库的批量操作.但在Django的ORM中的批量操作却要完美得多,真是一个惊喜. 数据模型定义 首先,定 ...
- C#批量插入数据到Sqlserver中的四种方式
我的新书ASP.NET MVC企业级实战预计明年2月份出版,感谢大家关注! 本篇,我将来讲解一下在Sqlserver中批量插入数据. 先创建一个用来测试的数据库和表,为了让插入数据更快,表中主键采用的 ...
- .Net批量插入数据到SQLServer数据库,System.Data.SqlClient.SqlBulkCopy类批量插入大数据到数据库
批量的的数据导入数据库中,尽量少的访问数据库,高性能的对数据库进行存储. 采用SqlBulkCopy来处理存储数据.SqlBulkCopy存储大批量的数据非常的高效,将内存中的数据表直接的一次性的存储 ...
- sql 中的Bulk和C# 中的SqlBulkCopy批量插入数据 ( 回顾 and 粗谈 )
通常,我们会对于一个文本文件数据导入到数据库中,不多说,上代码. 首先,表结构如下. 其次,在我当前D盘中有个文本文件名为2.txt的文件. 在数据库中,可以这样通过一句代码插入. Bulk in ...
- Java 批量插入数据(Oracle)
//批量添加20000条数据用时8秒. try { String url = "jdbc:oracle:thin:@IP:1521:orcl"; // orcl为数据库的SI ...
随机推荐
- B - B(Is It A Tree?)
给出一堆边给你,让你判断这是不是一棵树.边的信息以(start , end)的形式给出. A tree is a well-known data structure that is either em ...
- HDU4622 Reincarnation【SAM】
HDU4622 Reincarnation 给出一个串,每次询问其一个子串有多少不同的子串 按每个后缀建立\(SAM\)不断往后加字符,然后记录答案,查询的时候直接用即可 //#pragma GCC ...
- Redundant Paths POJ - 3177 把原图变成边—双连通图
无向图概念:(这里的x->y表示x和y之间有一条无向边)1.桥:对于一个无向图,如果删除某条边后,该图的连通分量增加,则称这条边为桥 比如1->2->3->4这样一个简单得图一 ...
- Gym 2009-2010 ACM ICPC Southwestern European Regional Programming Contest (SWERC 2009) A. Trick or Treat (三分)
题意:在二维坐标轴上给你一堆点,在x轴上找一个点,使得该点到其他点的最大距离最小. 题解:随便找几个点画个图,不难发现,答案具有凹凸性,有极小值,所以我们直接三分来找即可. 代码: int n; lo ...
- 【转】K8S中部署Helm
K8S中的包管理工具 1. 客户端Helm(即Helm) 通过脚本安装:curl https://raw.githubusercontent.com/helm/helm/master/scripts ...
- CentOS 7 架设LNMP动态网站
1.安装Nginx 1)使用Nginx官方的yum源 [root@localhost ~]# vim /etc/yum.repos.d/nginx.repo [nginx] name=nginx re ...
- Linux网络文件下载
wget 以网络下载 maven 包为例 wget -c http://mirrors.shu.edu.cn/apache/maven/maven-3/3.5.4/binaries/apache-ma ...
- Leetcode(206)-反转链表
反转一个单链表. 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 思路:反转链表很简 ...
- sdutoj2887
#include <stdio.h> #include <math.h> int main(){ int px,tx;double alpha; int T;scanf(&qu ...
- 这些不可不知的JVM知识,我都用思维导图整理好了
JVM是面试中必问的部分,本文通过思维导图以面向面试的角度整理JVM中不可不知的知识. 先上图: 1.JVM基本概念 1.1.JVM是什么 JVM 的全称是 「Java Virtual Machine ...