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. Redux中间件Redux-thunk的配置

    当做固定写法吧 截图里少一个括号,已代码为主 import {createStore,applyMiddleware,compose} from 'redux' import thunk from ' ...

  2. selenium中延时等待三种方式

    selenium中的延时等待方式有三种:强制等待:sleep()  隐示等待:implicitly_wait()  显示等待 WebDriverWait() 1.强制等待:sleep(),time模块 ...

  3. 【计算机网络】你真的了解HTTP(HTTPS)协议的这12个知识点吗

    HTTP协议 1. 介绍一下OSI七层参考模型和TCP/IP五层模型 1.1 OSI七层模型 1.2 TCP/IP五层模型 1.3 各层的设备 [各层设备] 1.4 各层对应协议 2. HTTP协议和 ...

  4. 数据表与简单java类——多对多映射

    给定一张Meber和Product表,得到如下信息: 1.获取一个用户访问的所有商品信息 2.获取一个商品被哪些用户浏览过的信息 package Mapping_transformation; cla ...

  5. Python用正则表达式匹配汉字

    Python用正则表达式匹配汉字 匹配多个汉字,不包括空格 import re res = re.match(r'[\u4E00-\u9FA5]+', '我是 汉字') print(res) # &l ...

  6. python模块IO

    Python之模块IO io概叙 io模块提供了python用于处理各种类型I/O的主要工具,主要有三种类型的I/O:文本I/O,二进制I/O和原始I/O:这些都是通用类型,各种后备存储可使用其中的每 ...

  7. 【灵魂拷问】你真的懂得Mysql的管理和使用吗?

    作者 | Jeskson 来源 | 达达前端小酒馆 MySQL管理,数据库管理和数据表管理,用户管理. 初始化数据库,创建数据库,查看数据库,删除数据库. 创建数据表,查看数据表,修改数据表,删除数据 ...

  8. 使用Python开发小说下载器,不再为下载小说而发愁 #华为云·寻找黑马程序员#

    需求分析 免费的小说网比较多,我看的比较多的是笔趣阁.这个网站基本收费的章节刚更新,它就能同步更新,简直不要太叼.既然要批量下载小说,肯定要分析这个网站了- 在搜索栏输入地址后,发送post请求获取数 ...

  9. 华为路由交换-DHCP

    DHCP 一. 配置基于接口地址池的DHCP 1.1实验原理 随着网络规模的扩大和网络复杂程度的提高,计算机位置变化(如便携机或无线网络)和计算机数量超过可分配的IP地址的情况将会经常出现.DHCP( ...

  10. hibernate的查询方式的介绍(一)

    1.对象导航查询 2.OID查询 3.hql(hibernate query language)查询 4.QBC查询 5.本地sql查询 在这里先介绍其中两种 1.hibernate的对象导航查询 ( ...