• Ajax课堂源码


    urls.py

    urlpatterns = [
        path('admin/', admin.site.urls),
        # ajax 相关
        path("ajax_temp/", views.ajax_temp),
        path("ajax_sleep/", views.ajax_sleep),
        path("ajax_test/", views.ajax_test),
        path("ajax_sum/", views.ajax_sum),
        # path("ajax_json/", views.ajax_json),
        # path("upload/", views.upload),
    ]
    

     

    views.py

    from django.shortcuts import render, HttpResponse
    from app01 import models
    
    def ajax_sleep(request):
        import time
        time.sleep(3)
        return HttpResponse("睡了3s")
    
    def ajax_temp(request):
        return render(request, "ajax_temp.html")
    
    
    def ajax_test(request):
        return HttpResponse("test...")
    
    from django.http import JsonResponse
    
    def ajax_sum(request):
        if request.is_ajax():
            num1 = request.POST.get("num1")
            num2 = request.POST.get("num2")
            ret = {"status": 1, "msg": None}
            try:
                total = int(num1) + int(num2)
                ret['msg'] = total
            except Exception as e:
                ret['status'] = 0
                ret['msg'] = "请输入数字"
            # return HttpResponse(total)
            return JsonResponse(ret)
        ###  视图响应时,只能时HttpResponse或者JsonResponse,render和redirect不能作为ajax请求的返回对象。
    

     

    ajax_temp.html

    <button id="btn1">ajax_sleep</button>
    <button id="btn2">ajax_test</button>
    {% csrf_token %}
    
    <div>
        <input type="text" id="i1"> + <input type="text" id="i2"> =
        <input type="text" id="i3"><button id="sum1">计算</button><span id="s1"></span>
    </div>
    
    
    <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.js"></script>
    
    <script>
        {#异步案例#}
        $("#btn1").click(function () {
            $.ajax({
                url: "/ajax_sleep/",
                type: "get",
                success: function (data) {
                    console.log(data);
                }
            })
        });
        $("#btn2").click(function () {
            $.ajax({
                url: "/ajax_test/",
                type: "get",
                success: function (data) {
                    console.log(data);
                }
            })
        });
    
        {#计算案例#}
        $("#sum1").click(function () {
            var num1 = $("#i1").val();
            var num2 = $("#i2").val();
            $.ajax({
                url: "/ajax_sum/",
                type: "post",
                data: {
                    num1: num1,
                    num2: num2,
                    csrfmiddlewaretoken: $("[name=csrfmiddlewaretoken]").val(),
                },
                success: function (data) {
                    // JSON.parse(data) 反序列化才能使用
                    if (data.status){
                        $("#i3").val(data.msg);
                    }else{
                        $("#s1").text(data.msg);
                        setTimeout(function () {
                            $("#s1").text("");
                        }, 2000)
    
                    }
    
                }
            })
        });
    </script>
    

      

  • 相关阅读:
    Hibernate session.save()实体类,主键增长问题
    安装原版 Windows 7 后需要安装的微软更新 和 必备系统组件
    如何使用站群程序来批量建网站?
    Android图片优化指南
    SQLite为何要用C语言来开发?
    Kotlin使用率达35%,Java要退位了?
    JavaScript的几种循环使用方式及性能解析
    30 分钟理解 CORB 是什么
    PHP 字符串相关常识
    那些10w+的公众号都在写什么?
  • 原文地址:https://www.cnblogs.com/eliwen/p/13258991.html
Copyright © 2020-2023  润新知