一、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批量插入数据和分页器的更多相关文章

  1. [Django高级之批量插入数据、分页器组件]

    [Django高级之批量插入数据.分页器组件] 批量插入数据 模板层models.py from django.db import models class Books(models.Model): ...

  2. django与ajax:ajax结合sweetalter ,批量插入数据 ;分页器组件

    目录 一.ajax结合sweetalter 二.bulk_create批量插入数据 三.简易版分页器推导 1. 推导步骤 四.自定义分页器的使用 1. 自定义分页器模板 2. 使用方法 (1)后端代码 ...

  3. django----Sweetalert bulk_create批量插入数据 自定义分页器

    目录 一.Sweetalert使用AJAX操作 二.bulk_create 三.分页器 divmod 分页器组件 自定义分页器的使用 一.Sweetalert使用AJAX操作 ​ sweetalert ...

  4. django ajax 及批量插入数据 分页器

    ``` Ajax 前端朝后端发送请求都有哪些方式 a标签href GET请求 浏览器输入url GET请求 form表单 GET/POST请求 Ajax GET/POST请求 前端朝后端发送数据的编码 ...

  5. Django orm 实现批量插入数据

    Django ORM 中的批量操作 在Hibenate中,通过批量提交SQL操作,部分地实现了数据库的批量操作.但在Django的ORM中的批量操作却要完美得多,真是一个惊喜. 数据模型定义 首先,定 ...

  6. C#批量插入数据到Sqlserver中的四种方式

    我的新书ASP.NET MVC企业级实战预计明年2月份出版,感谢大家关注! 本篇,我将来讲解一下在Sqlserver中批量插入数据. 先创建一个用来测试的数据库和表,为了让插入数据更快,表中主键采用的 ...

  7. .Net批量插入数据到SQLServer数据库,System.Data.SqlClient.SqlBulkCopy类批量插入大数据到数据库

    批量的的数据导入数据库中,尽量少的访问数据库,高性能的对数据库进行存储. 采用SqlBulkCopy来处理存储数据.SqlBulkCopy存储大批量的数据非常的高效,将内存中的数据表直接的一次性的存储 ...

  8. sql 中的Bulk和C# 中的SqlBulkCopy批量插入数据 ( 回顾 and 粗谈 )

    通常,我们会对于一个文本文件数据导入到数据库中,不多说,上代码. 首先,表结构如下.   其次,在我当前D盘中有个文本文件名为2.txt的文件. 在数据库中,可以这样通过一句代码插入. Bulk in ...

  9. Java 批量插入数据(Oracle)

    //批量添加20000条数据用时8秒. try {    String url = "jdbc:oracle:thin:@IP:1521:orcl"; // orcl为数据库的SI ...

随机推荐

  1. vue开发东京买菜,全栈项目,前端django,带手机GPS精准定位,带发票系统,带快递系统,带微信/支付宝/花呗/银行卡支付/带手机号一键登陆,等等

    因为博客园不能发视频,所以,完整的视频,开发文档,源码,请向博主索取 完整视频+开发文档+源码,duanshuiLu.com下载 vue+django手机购物商城APP,带支付,带GPS精准定位用户, ...

  2. Alternating Strings Gym - 100712D 简单dp && Alternating Strings II Gym - 100712L 数据结构优化dp

    比赛链接:https://vjudge.net/contest/405905#problem/D 题意: 给你一个长度为n的由0或1构成的串s,你需要切割这个串,要求切割之后的每一个子串长度要小于等于 ...

  3. Traveling Salesman among Aerial Cities 旅行商(TSP)问题

    题目链接:点我 问题: 给你n个点的坐标(x,y,z).从点(a,b,c) 到另一个点 (p,q,r) 的距离是:|p−a|+|q−b|+max(0,r−c) 问你从一个点为起点,找一条能经过其他所有 ...

  4. SP3267 DQUERY - D-query 莫队板子题

    题意可见:https://www.luogu.com.cn/problem/SP3267 可在vj上提交:https://vjudge.net/problem/SPOJ-DQUERY 题意翻译 给出一 ...

  5. python的threading的使用(join方法,多线程,锁threading.Lock和threading.Condition

    一.开启多线程方法一 import threading,time def write1(): for i in range(1,5): print('1') time.sleep(1) def wri ...

  6. SpringSecurity认证流程

    SpringSecurity配置 SecurityConfig.java @Override protected void configure(HttpSecurity http) throws Ex ...

  7. 牛客网多校第4场 J Hash Function 【思维+并查集建边】

    题目链接:戳这里 学习博客:戳这里 题意: 有n个空位,给一个数x,如果x%n位数空的,就把x放上去,如果不是空的,就看(x+1)%n是不是空的. 现在给一个已经放过数的状态,求放数字的顺序.(要求字 ...

  8. IFIX 数据源 节点 标签 域名

    一个动画,前景颜色 数据源如上图 点 ,,, 进入选择界面,如下 Fix32  应该是统一的前缀,自动添加上的 然后就是我们的节点名字,启动ifix的时候显示的那个节点名字 标签应该就是我们的 变量/ ...

  9. 操作系统 part2

    一.程序的内存结构 references: newcoder 运行时,程序分为:text段.data段.BSS段(2个合称数据段).堆.栈. text段:代码段,静态分配内存,只读. data段:初始 ...

  10. Git使用指南(上)

    1 Git简介 学习一门技术老师更加倾向于看官网的. 度娘看完了,官网看完了,大家还是很懵逼 学生成绩管理系统 登录模块   3.2 登录模块进一步完善    缺一个验证码的功能    3.3 登录模 ...