models.py文件

from django.db import models

class User(models.Model):
username=models.CharField(max_length=32)
age=models.IntegerField()
gender_choices=(
(1,'male'),
(2,'female'),
(3,'other')
)
gender=models.IntegerField(choices=gender_choices) urls.py文件 urlpatterns=[
url(r'^admin/', admin.site.urls),
#首页
url(r'^$',views.home) ] settings.py文件 STATICFILES_DIRS=[
os.path.join(BASE_DIR,'static')
] #另外注释csrf中间件 views.py文件 from django.shortcuts import render
from app01 import models
import time
from django.http import JsonResponse '''
如果是ajax进行前后端交互,
通常后端会返回给ajax一个字典 '''
def home(request):
'''
思路整理:
前提:
查询出User表中全部数据
locals()提交全部数据到home.html页面
前端页面请求到后端以后:
1.先判断是不是ajax请求
2.是ajax请求的,返回字典:{'code':1000,'msg':''}
3.获取删除数据对应的id值
4.设置页面睡眠3秒钟
5.执行删除
6.然后给back_dic字典中的msg做赋值操作,数据已经删除
7.通过Jsonresponse把back_dic 字典返回给前端页面 '''
#代码如下:
if request.is_ajax():
back_dic={'code':1000,'msg':''}
delete_id=request.POST.get('delete_id')
time.sleep(3)
models.User.objects.filter(pk=delete_id).delete()
back_dic['msg']='数据已经被我删除掉了'
return JsonResponse(back_dic) user_queryset=models.User.objects.all()
查询出User表中的全部数据
return render(request,'home.html',locals())
返回所有数据到home.html页面上 homt.html文件 '''
首先动态配置静态文件
其次配置bootstrap文件和sweetalert文件的样式js和cs
'''
{% load static %}
<link rel='stylesheet' href='{% static 'boot3.7/css/boot.min.css' %}'>
<script src='{% static 'boot3.7/js/boot.min.js' %}'></script> <link rel='stylesheet' href='{% static 'dist/sweetalert.css' %}'>
<script src='{% dist/sweetalert.min.js %}'></script>
<style>
div.sweet-alert h2{
padding:10px
}
</style> <div class='container-fluid'>
<div class='row'>
<div class='col-md-8 col-md-offset-2'>
<h2>首先展示</h2>
<br>
<table class='table table-hover table-bordered table-striped'>
<thead>
<tr>
<th>序号</th>
<th>用户名</th>
<th>年龄</th>
<th>性别</th>
<th class='text-center'>操作</th>
</tr>
</thead>
<tbody>
{% for userobj in user_queryset %}
<tr>
<td>{{forloop.counter}}</td> #计数
<td>{{userobj.username}}</td>
<td>{{userobj.age}}</td>
<td>{{userobj.get_gender_display}}</td>
固定用法获取gender,_display会自动加括号,所以此处display后面不能有括号 <td class='text-center'>
<a href='#' class='btn btn-primary btn-sm'>编辑</a>
<a href='#' class='btn btn-danger btn-sm cancel userId={{userobj.pk}}'>删除</a>
</td>
</tr> {% endfor %} </tbody>
</table>
</div>
</div>
</div> 给删除绑定一个点击事件
<script>
为删除添加一个绑定事件,利用cancel来指定删除事件
$('.cancel').click(
function(){
朝后端发送ajax请求,如何拿到当前按钮所对应的数据的主键值id?
先把$btn单独先存储起来,老师的思路是,添加自定义属性userId={{userobj.pk}}获取pk的值
var $btn = $(this)
swal({
title: "Are you sure?",
text: "You will not be able to recover this imaginary file!",
type: "warning",
showCancelButton: true,
confirmButtonClass: "btn-danger",
confirmButtonText: "Yes, delete it!",
cancelButtonText: "No, cancel plx!",
closeOnConfirm: false,
closeOnCancel: false,
showLoaderOnConfirm: true
},
function (isConfirm) {
if (isConfirm) {
//朝后端发送ajax请求
$.ajax({
url:'',
type:'post',
data:{'delete_id':$btn.attr('userId')}
//$btn指代当前被点击删除的按钮,$btn.attr指代当前删除按钮对应的属性,删除数据所对应的pk值
success:function(data){
if (data.code==1000){
swal('猪脑泡泡龙','删了','success')
//通过DOM操作,来直接操作标签,删除对应的数据
//当前标签点父级标签点父级标签点移除
$btn.parent().parent().remove()
}else{
swal('有bug','未知错误','warning')
}
} }) } else {
swal("Cancelled", "Your imaginary file is safe :)", "error");
}
}); } ) </script>

django基础之day08,ajax结合sweetalert的使用的更多相关文章

  1. {Django基础七之Ajax} 一 Ajax简介 二 Ajax使用 三 Ajax请求设置csrf_token 四 关于json 五 补充一个SweetAlert插件(了解)

    Django基础七之Ajax 本节目录 一 Ajax简介 二 Ajax使用 三 Ajax请求设置csrf_token 四 关于json 五 补充一个SweetAlert插件(了解) 一 Ajax简介 ...

  2. {Django基础七之Ajax} 一 Ajax简介 二 Ajax使用 三 Ajax请求设置csrf_token 四 关于json 五 补充一个SweetAlert插件(了解)

    {Django基础七之Ajax} 一 Ajax简介 二 Ajax使用 三 Ajax请求设置csrf_token 四 关于json 五 补充一个SweetAlert插件(了解)   Django基础七之 ...

  3. day 72 Django基础七之Ajax

    Django基础七之Ajax   本节目录 一 Ajax简介 二 Ajax使用 三 Ajax请求设置csrf_token 四 关于json 五 补充一个SweetAlert插件(了解) 六 同源策略与 ...

  4. day 60 Django基础七之Ajax

      Django基础七之Ajax   本节目录 一 Ajax简介 二 Ajax使用 三 Ajax请求设置csrf_token 四 关于json 五 补充一个SweetAlert插件(了解) 六 同源策 ...

  5. Django基础五之Ajax

    Django基础五之Ajax 目录 Django基础五之Ajax 1. Ajax介绍 2. Ajax前后端传值 2.1 方法一HttpResponse直接返回 2.2 方法二使用Json格式返回 2. ...

  6. Django中数据传输编码格式、ajax发送json数据、ajax发送文件、django序列化组件、ajax结合sweetalert做二次弹窗、批量增加数据

    前后端传输数据的编码格式(contentType) 提交post请求的两种方式: form表单 ajax请求 前后端传输数据的编码格式 urlencoded formdata(form表单里的) ja ...

  7. Django基础七之Ajax

    一 Ajax简介 1.简介 AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步的Javascript和XML”.即使用Javascript语言与服务器进行异 ...

  8. 09.Django基础七之Ajax

    一 Ajax简介 1.简介 AJAX(Asynchronous Javascript And XML)翻译成中文就是"异步的Javascript和XML".即使用Javascrip ...

  9. django基础知识之Ajax:

    使用Ajax 使用视图通过上下文向模板中传递数据,需要先加载完成模板的静态页面,再执行模型代码,生成最张的html,返回给浏览器,这个过程将页面与数据集成到了一起,扩展性差 改进方案:通过ajax的方 ...

随机推荐

  1. python3 之 变量作用域详解

    作用域: 指命名空间可直接访问的python程序的文本区域,这里的 ‘可直接访问’ 意味着:对名称的引用(非限定),会尝试在命名空间中查找名称: L:local,局部作用域,即函数中定义的变量: E: ...

  2. 小白学习python第一天,Pycharm破解与用法(持续更新)

    目录 Pycharm安装与破解及汉化 Pycharm安装 Pycharm破解 Pycharm汉化 Pycharm使用 添加作者.时间等信息 补充 @ Pycharm安装与破解及汉化 本人最近开始找到了 ...

  3. Nginx-(四)基本模块2

    nginx常用模块介绍(二) ngx_http_rewrite_module模块配置 (1)       rewrite  regex  replacement [flag]; 将请求的url基于正则 ...

  4. day20190916notes

    记得学完知识,趁热打铁.认真看3遍,写抄写模仿3遍.记不得,就罚抄3遍.奖罚分明.自知之明.最重要的是看懂和理解代码.能自己看懂代码,多花时间和功夫. 只要功夫深,铁杵磨成针.确定一个努力的方向,坚持 ...

  5. 【Android - 问题解决】之ScrollView嵌套ListView时总是自动滑动到ListView顶部的问题

    最近做了一个项目,里面有一个ScrollView嵌套ListView的布局. 做出来之后发现,进入这个界面之后,总是自动滑动到ListView的顶部,而ScrollView中位于ListView上面的 ...

  6. Android项目依赖库管理方式简介

    在实际的android项目开发过程中,我们一般都会用一些现有的第三方库来实现我们的需求,避免重复造轮子.普遍使用到的,例如:网络请求库.图片处理库.界面UI库(自定义View.动画效果等).各种第三方 ...

  7. 基于JDK1.8的JVM 内存结构【JVM篇三】

    目录 1.内存结构还是运行时数据区? 2.运行时数据区 3.线程共享:Java堆.方法区 4.线程私有:程序计数器.Java 虚拟机栈.本地方法栈 5.JVM 内存结构总结 在我的上一篇文章别翻了,这 ...

  8. tp5引用第三方类vendor或extend(多种方法)

    extend 方法一:命名空间引入 我们只需要把自己的类库包目录放入EXTEND_PATH目录(默认为extend,可配置),就可以自动注册对应的命名空间,例如: 我们在extend目录下面新增一个l ...

  9. 用生动的案例一步步带你学会python多线程模块

    鱼和熊掌不可兼得 鱼,我所欲也,熊掌,亦我所欲也,二者不可得兼,舍鱼而取熊掌者也. 从6月开始写公众号,连着四个月一直尽量保证一周五更,结果整天熬夜搞的身体素质骤降.十一休假决定暂时将公众号放放,好好 ...

  10. v-bind和v-model的本质区别和作用域

    每篇一句 一场寂寞凭谁诉.算前言,总轻负. Vue视图数据展示方式和彼此的区别: {{插值表达式}} {{}}插值表达式里面 只能写表达式,不能写语句 文本输出,不会解析标签 不能作用在标签的属性上, ...