ajax结合sweetalert实现删除按钮动态效果
一、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 }} # 自动渲染页面及样式
ajax结合sweetalert实现删除按钮动态效果的更多相关文章
- Django-choices字段值对应关系(性别)-MTV与MVC科普-Ajax发json格式与文件格式数据-contentType格式-Ajax搭配sweetalert实现删除确认弹窗-自定义分页器-批量插入-07
目录 models 字段补充 choices 参数/字段(用的很多) MTV与MVC模型 科普 Ajax 发送 GET.POST 请求的几种常见方式 用 Ajax 做一个小案例 准备工作 动手用 Aj ...
- django基础之day08,ajax结合sweetalert的使用
models.py文件 from django.db import models class User(models.Model): username=models.CharField(max_len ...
- Django --- ajax结合sweetalert使用,分页器,bulk_create批量创建数据
目录 ajax结合sweetalert使用 bulk_create批量插入数据 分页器的使用 ajax结合sweetalert使用 ajax可以在不刷新页面的情况下与后端进行交互,在对数据进行操作的时 ...
- django之ajax结合sweetalert使用,分页器和bulk_create批量插入 07
目录 sweetalert插件 bulk_create 批量插入数据 分页器 简易版本的分页器的推导 自定义分页器的使用(组件) sweetalert插件 有这么一个需求: 当用户进行一个删除数据 ...
- 用ajax对数据进行删除和查看
删除和查看详情操作的共同语句:就是怎么显示表? 1.在主体中写表的开头行,想要显示的内容,并且加载数据也要显示的地方也建张表 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 & ...
- easyui tree datagrid动态添加表头和表格数据,动态弹出框,修改和删除按钮
1.要有获取表头的URL和表格的URL 背景:点击树的一个节点,就加载一个表格,这个表格是动态的,表头和表格数据都是动态的 解决方案:需要两个URL,一个是获取表头的URL,一个是获取表格数据的URL ...
- Ajax对数据的删除与查看
1.数据库找一张表: 颜色表2.主页面主页面的代码用到tbody:TBODY作用是:可以控制表格分行下载,从而提高下载速度.(网页的打开是先表格的的内容全部下载完毕后,才显示出来,分行下载可以先显示部 ...
- Django中数据传输编码格式、ajax发送json数据、ajax发送文件、django序列化组件、ajax结合sweetalert做二次弹窗、批量增加数据
前后端传输数据的编码格式(contentType) 提交post请求的两种方式: form表单 ajax请求 前后端传输数据的编码格式 urlencoded formdata(form表单里的) ja ...
- selenium依次点击页面的删除按钮
需要依次点击页面的删除按钮,如下图: @Test public static void FaBu() { TestMenuJump.jumpExam(driver); TestMenuJump.jum ...
随机推荐
- mysql的属性zerofill
一.字段中zerofill属性的类似定义方式 SQL语句:字段名 int(M) zerofill 二.zerofill属性的作用 1.插入数据时,当该字段的值的长度小于定义的长度时,会在该值的前面补上 ...
- "PSP助手”微信小程序宣传视频链接及内容介绍
此作业的要求参见[https://edu.cnblogs.com/campus/nenu/2019fall/homework/8677] 队名:扛把子组 组长:迟俊文 组员:刘信鹏 韩昊 宋晓丽 梁梦 ...
- Linux安装redis数据库
这几天在搞redis数据库,花了好大功夫,才成功安装在Linux上,这里将自己的安装步骤分享出来,同时也做个记录,备忘. 新人一枚,不对之处,请多指教! 首先登陆Linux服务器 Linux里,我习惯 ...
- 《master the game of GO wtth deep neural networks and tree search》研究解读
现在”人工智能“如此火爆的一大直接原因便是deepmind做出的阿尔法狗打败李世石,从那时开始计算机科学/人工智能成为了吹逼的主流.记得当时还是在学校晚新闻的时候看到的李世石输的消息,这个新闻都是我给 ...
- 【翻译】Orleans 3.0 发布
aaarticlea/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUF ...
- day 49
今日内容 标签操作 样式操作 样式类操作 addClass(); // 添加指定的CSS类名. removeClass(); // 移除指定的CSS类名. hasClass(); // 判断样式存不存 ...
- scrapy抓取国家社科基金项目数据库
1.明确任务 目标网站:http://fz.people.com.cn/skygb/sk/index.php/Index/seach 抓取任务:抓取近五年某关键词(例如"能源".” ...
- wincap linux部署
1.4.1 linux下安装Winpcap a) 下载Winpcap的源码:https://www.winpcap.org/devel.htm b) 上传源码包“WpcapSrc_4_1_3.zip” ...
- [ch04-01] 用最小二乘法解决线性回归问题
系列博客,原文在笔者所维护的github上:https://aka.ms/beginnerAI, 点击star加星不要吝啬,星越多笔者越努力. 4.1 最小二乘法 4.1.1 历史 最小二乘法,也叫做 ...
- Scrapy持久化存储-爬取数据转义
Scrapy持久化存储 爬虫爬取数据转义问题 使用这种格式,会自动帮我们转义 'insert into wen values(%s,%s)',(item['title'],item['content' ...