9.20Ajax知识sweetalet

2018-9-20 14:19:55

2018-9-20 21:33:05

周末可以帮我图书商城再次优化一下!!

加入 Ajax请求,,再加上 sweetAlert  甜蜜对话框插件!

要是再加上模态框 就是太完美了!!

前端用js Ajax发送数据,后端就接收个请求返回东西就好了!

明天继续!

越努力,越幸运!

参考连接:http://www.cnblogs.com/liwenzhou/p/8718861.html

js中的 json 对象转换

bootstrap-sweetalet   使用  连接: https://github.com/lipis/bootstrap-sweetalert

里面的

就这来有用!

Ajax.py demo 

from django.shortcuts import render, HttpResponse

# Create your views here.


def index(request):
    return render(request, "index.html")


def ajax_add(request):
    print(request.GET)
    print(request.GET.get("i1"))
    print(request.GET.get("i2"))

    i1 = int(request.GET.get("i1"))
    i2 = int(request.GET.get("i2"))
    # i1 = request.GET.get("i1")
    # i2 = request.GET.get("i2")
    #
    # i1 = int(i1)
    # i2 = int(i2)
    # print(i1, i2)
    # print("=" * 120)
    # ret = i1 + i2

    ret = i1 + i2
    return HttpResponse(ret)

def ajax_add3(request):
    print(request.POST)
    print("-" * 120)
    i1 = int(request.POST.get("i1"))
    i2 = int(request.POST.get("i2"))
    # i1 = request.GET.get("i1")
    # i2 = request.GET.get("i2")
    #
    # i1 = int(i1)
    # i2 = int(i2)
    # print(i1, i2)
    # print("=" * 120)
    # ret = i1 + i2

    ret = i1 + i2
    return HttpResponse(ret)


def test(request):
    # import time
    # time.sleep(5)
    url = "http://p7.yokacdn.com/pic/YOKA_HZP/2018-01-19/U10089P42TS1516351813_11903.jpg"
    # return HttpResponse(url)
    # return render(request, "index.html")
    return HttpResponse("http://www.luffycity.com")

from app01 import models
def persons(request):
    ret = models.Person.objects.all()

    # person_list = []
    # for i in ret:
    #     person_list.append({"name": i.name, "age": i.age})
    # print(person_list)
    # import json
    # s = json.dumps(person_list)
    # print(s)

    # from django.core import serializers
    # s = serializers.serialize("json", ret)
    # print(s)
    # return HttpResponse(s)

    return render(request, "sweetalert_demo.html", {"persons": ret})


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

sweetalert_demol.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>sweetalert_demo</title>
    <link rel="stylesheet" href="/static/bootstrap/css/bootstrap.min.css">
    <link rel="stylesheet" href="/static/fontawesome/css/font-awesome.min.css">
    <link rel="stylesheet" href="/static/sweetalert/sweetalert.css">
    <style>
        .sweet-alert>h2 {
            padding-top: 15px;
        }
    </style>
</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>
        <th>操作</th>
    </tr>
 </thead>
        <tbody>
            {% for p in persons %}
                <tr>
                <td>{{ forloop.counter }}</td>
                <td>{{ p.id }}</td>
                <td>{{ p.name }}</td>
                <td>{{ p.age }}</td>
                <td>{{ p.birthday|date:'Y-m-d' }}</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/bootstrap/js/bootstrap.min.js"></script>
<script src="/static/sweetalert/sweetalert.min.js"></script>
<script src="/static/setupajax.js"></script>
<script>
    // 找到删除按钮绑定事件
    $(".del").on("click", function () {
        var $trEle = $(this).parent().parent();
        var delId = $trEle.children().eq(1).text();

        swal({
          title: "你确定要删除吗?",
          text: "一旦删除就找不回来了",
          type: "warning",
          showCancelButton: true,
          confirmButtonClass: "btn-warning",
          confirmButtonText: "确认",
          cancelButtonText: "取消",
          closeOnConfirm: false,
          showLoaderOnConfirm: true
        },
        function(){
            // 向后端发送删除的请求
            $.ajax({
                url: "/delete/",
                type: "post",
                data: {"id":delId},
                success:function (arg) {
                    swal(arg, "你可以跑路了!", "success");
                    $trEle.remove();
                }
            });

        });
    })
</script>
</body>
</html>
$(".btn-danger").on("click", function () {
  swal({
    title: "你确定要删除吗?",
    text: "删除可就找不回来了哦!",
    type: "warning",
    showCancelButton: true,
    confirmButtonClass: "btn-danger",
    confirmButtonText: "删除",
    cancelButtonText: "取消",
    closeOnConfirm: false
    },
    function () {
      var deleteId = $(this).parent().parent().attr("data_id");
      $.ajax({
        url: "/delete_book/",
        type: "post",
        data: {"id": deleteId},
        success: function (data) {
          if (data.status === 1) {
            swal("删除成功!", "你可以准备跑路了!", "success");
          } else {
            swal("删除失败", "你可以再尝试一下!", "error")
          }
        }
      })
    });
})
day72 2018-05-16

1. 内容回顾
    1. Cookie是什么
        保存在浏览器端的键值对
        
        为什么要有Cookie?
            因为HTTP请求是无状态的
        
        Cookie的原理?
            服务端可以在返回响应的时候 做手脚
            在浏览器上写入键值对(Cookie)
            
            浏览器发送请求的时候会自动携带该网站保存在我浏览器的键值对(Cookie)
            
        Django 从请求携带的Cookie中取值:
            request.COOKIES.get("is_login")
            request.get_signed_cookie(key, default=None, salt="xxx")
        Django中设置Cookie:(针对的是响应对象)
            rep = HttpResponse()/render(request, "test.html)/redirect()
            rep.set_signed_cookie(key, value, salt="xxx", max_age=7)
        Django中删除Cookie:(注销)
            rep.delete_cookie(key)

    2. Session是什么
        Session保存在服务端的键值对
        
        Session依赖于Cookie
        
        dsadasdsadsafsjkndf: {"is_login": 1, "name": "xiaohei", "age":18}
        dsaasdaknfgreryywdf: {"is_login": 1, "name": "xiaobai", "age":20}
        wqrqrteknfgzddasqfg: {"is_login": 0, "name": "xiaohui", "age":48}
        
        给浏览器写入Cookie:
            sessionid:wqrqrteknfgzddasqfg
            
        1. 从用户发来的请求的Cookie中 根据 sessionid 取值, 取到 wqrqrteknfgzddasqfg
        2. 根据特殊字符串找到对应的 Session 数据  --> {"is_login": 0, "name": "xiaohui", "age":48}
        3. request.session.get("is_login")    --> 从Session取值
        
        
        Django中设置Session:
            request.session["is_login"] = 1
            request.session.set_expiry(7)  # 设置超时时间 (Cookie和Session数据的)
            
            
            在settings.py中设置,每次请求都刷新Session超时时间
            SESSION_SAVE_EVERY_REQUEST = True 
        
        Django中删除Session:
            request.session.flush()     清除Cookie和Session数据
            
            request.session.clear_expired()  将所有Session失效日期小于当前日期的数据删除
            
2. 今日内容
    AJAX
    
    1. 预备知识 JSON
    
    
    2. 我们之前已经学过的发请求的方式:
        1. 直接在地址栏输入URL回车     GET请求
        2. a标签                       GET请求
        3. form表单                    GET/POST请求
        4. AJAX                        GET/POST请求
        
    3. AJAX 特点:
        1. 异步
        2. 局部刷新浏览器(偷偷发请求)
        
    
        
3. 今日作业
绝知此事要躬行!!!

1. 检测用户名是否已经存在!
2. 把Sweetalet插件
3. 复习jQuery的内容
原文地址:https://www.cnblogs.com/zhen1996/p/9680648.html