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. 全栈项目|小书架|微信小程序-登录及token鉴权

    小程序登录 之前也写过微信小程序登录的相关文章: 微信小程序~新版授权用户登录例子 微信小程序-携带Token无感知登录的网络请求方案 微信小程序开通云开发并利用云函数获取Openid 也可以通过官方 ...

  2. Head First设计模式——适配器和外观模式

    前言:为什么要一次讲解这两个模式,说点骚话:因为比较简单(*^_^*),其实是他们两个有相似和有时候我们容易搞混概念. 讲到这两个设计模式与另外一个“装饰者模式”也有相似,他们三个按照结构模式分类都属 ...

  3. 【论文阅读】Deep Mutual Learning

    文章:Deep Mutual Learning 出自CVPR2017(18年最佳学生论文) 文章链接:https://arxiv.org/abs/1706.00384 代码链接:https://git ...

  4. 关于C# 语言

    C# 语法高度重视表达,但学习起来也很简单轻松. 任何熟悉 C.C++ 或 Java 的人都可以立即认出 C# 的大括号语法. 通常情况下,了解上述任何一种语言的开发者可以在很短的时间内就开始使用 C ...

  5. 2019-9-28:渗透测试,phpstudy后门,利用复现

    9月20号爆出Phpstudy存在隐藏后门,简单复现下后门效果 该文章仅供学习,利用方法来自网络文章,仅供参考 目标机:win7系统,安装phpstudy 2018版,php版本5.2或php 5.4 ...

  6. linuxRAID(软)

    RAID是一种存储机制,英文全名为“RedundantArrays of Inexpensive Disks”,即容错廉价磁盘阵列.RAID可以通过一些技术(硬件或者软件)将多个磁盘整合起来,不仅是一 ...

  7. python中的random模块简析

    在Python生成随机数用random模块,下面的文章是本人自己简单总结的ython生成随机数与random模块中最常用的几个函数的关系,希望对大家有所帮助. random.random()用于生成随 ...

  8. Linux服务和systemctl详解

    定义 A Linux service is an application (or set of applications) that runs in the background waiting to ...

  9. Error creating bean with name 'entityManagerFactory' defined in class path resource解决方案

    ​ 项目是集成了Spring Boot和Spring Data,然后昨天简单Jpa和Spring Boot配置完成,开始进行公司项目的重构,然后出现了这个问题.当时是在网上找了好久.后来发现时java ...

  10. c# 窗体开发3 文件处理技术

    以字节形式向磁盘写入数据通常称为字节流(比特流) 常常使用System.Io 常用的类 类 说明 File 提供用于创建.复制.删除.移动和打开文件的静态方法,并协助创建 FileStream 对象. ...