Python - Django - SweetAlert 插件的使用

SweetAlert Github:https://github.com/lipis/bootstrap-sweetalert

下载完后放入 /static/ 目录下

 

 

sweetalert.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>SweetAlert 测试</title>
    <link rel="stylesheet" href="/static/sweetalert/sweetalert.css">
    <link rel="stylesheet" href="/static/bootstrap/css/bootstrap.min.css">
    <link rel="stylesheet" href="/static/fontawesome/css/font-awesome.min.css">
</head>
<body>

<div class="container">

    <div class="panel panel-primary">
        <div class="panel-heading">
            <h3 class="panel-title">Person 管理界面</h3>
        </div>
        <div class="panel-body">
            <table class="table table-bordered">
                <thead>
                <tr>
                    <th>序号</th>
                    <th>id</th>
                    <th>name</th>
                    <th>age</th>
                    <th>操作</th>
                </tr>
                </thead>
                <tbody>
                {% for p in person %}
                    <tr>
                        <td>{{ forloop.counter }}</td>
                        <td>{{ p.id }}</td>
                        <td>{{ p.name }}</td>
                        <td>{{ p.age }}</td>
                        <td>
                            <button class="btn btn-danger del"><i class="fa fa-trash-o">删除</i></button>
                        </td>
                    </tr>
                {% endfor %}
                </tbody>
            </table>
        </div>
    </div>
</div>

<script src="/static/jquery-3.3.1.js"></script>
<script src="/static/test.js"></script>
<script src="/static/bootstrap/js/bootstrap.min.js"></script>
<script src="/static/sweetalert/sweetalert.min.js"></script>

<script>
    // 找到删除按钮绑定的事件
    $(".del").on("click", function () {
        var $trEle = $(this).parent().parent();  // 当前点击事件的前两级,即为 tr 标签
        var delId = $trEle.children().eq(1).text();  // children 取得 td 标签,eq(1).text() 取得索引为 1 下的文本内容

        swal({
                title: "确定要删除吗?",
                text: "该操作将会删除该条数据",
                type: "warning",   // 此处可以修改 danger、warning、info
                showCancelButton: true,
                confirmButtonClass: "btn-danger",  // 此处可以修改 danger、warning、info
                confirmButtonText: "确定",
                cancelButtonText: "取消",
                closeOnConfirm: false
            },
            function () {
                // 向后端发送删除的请求
                $.ajax({
                    url: "/delete/",
                    type: "post",
                    data: {"id": delId},
                    success: function (arg) {
                        swal(arg, "该条数据已被删除!", "success");
                        $trEle.remove();  // 删除前端的内容
                    }
                });
            });
    })
</script>

</body>
</html>

在 bootstrap 网站上找到一个面板

 

 

 再来找一个带边框的表格

 

 

在 https://lipis.github.io/bootstrap-sweetalert/ 可以看到一些弹窗示例

 

 

想用什么弹窗直接复制修改代码就好了

views.py:

from django.shortcuts import render, HttpResponse
from app01 import models


def sweet(request):
    person = models.Person.objects.all()
    return render(request, "sweetalert.html", {"person": person})


def delete(request):
    del_id = request.POST.get("id")
    models.Person.objects.filter(id=del_id).delete()
    return HttpResponse("删除成功!")

urls.py:

from django.conf.urls import url
from app01 import views


urlpatterns = [
    url(r'^sweet/', views.sweet),
    url(r'^delete/', views.delete),
]

访问,http://127.0.0.1:8000/sweet/

 

 

点击 “删除”

 

 

点击 “确定”

 

 

删除成功,然后点击 “OK”

 

 

删除了 id 为 4 的数据

但是这里删除成功的显示有点问题

右键 -> 检查

 

 

该弹窗在 h2 标签在 sweet-alert 下

在 sweetalert.html 添加以下的代码

 

 

再删除数据

 

posted @ 2019-09-04 23:10  Sch01aR#  阅读(803)  评论(0编辑  收藏  举报