美文网首页Python
不刷新页面请求数据(Django+ajax+jquery)

不刷新页面请求数据(Django+ajax+jquery)

作者: 寂寞杰罗 | 来源:发表于2018-01-16 16:45 被阅读3742次

    一个简单加法的例子

    网上找了些资料,大部分资料由于Django版本低,没法直接用,自己写好做个记录。
    做ajax页面请求主要有 点:

    urls.py

    建立两个url路径,demo_ajaxdemo_add

    urlpatterns = [
        …………
        path('demo_ajax/', hc_views.demo_ajax),
        path('demo_add/', hc_views.demo_add),
    ]
    

    demo_ajax显示加法输入框和按钮,demo_add导航到views试图,用于处理加法并返回结果。

    views.py

    两个试图对应两个urls,demo_ajax视图直接渲染demo_ajax.html模板,demo_add视图处理GET请求。

    def demo_ajax(request):
        return render(request, 'demo_ajax.html')
    
    def demo_add(request):
        a=request.GET['a']
        b=request.GET['b']
    
        if request.is_ajax():
            ajax_string = 'ajax request: '
        else:
            ajax_string = 'not ajax request: '
    
        c = int(a) + int(b)
        r = HttpResponse(ajax_string + str(c))
        return r
    

    HTML模板页面

    <!DOCTYPE html>
    <html>
    <head>
        {% load static %}
    </head>
    <body>
        <p>请输入两个数字</p>
        <form action="/demo_add/" method="get">
            a: <input type="text" id="a" name="a"> <br>
            b: <input type="text" id="b" name="b"> <br>
            <p>result: <span id='result'></span></p>
            <button type="button" id='sum'>提交</button>
        </form>
    
        <script src="{% static 'jquery/jquery.js' %}"></script>
        <script>
    //这里是关键点 .ready 函数好像监听器。
            $(document).ready(function () {
    //jq的处理函数,当点击提交按钮时执行。
                $("#sum").click(function () {
    //得到页面中id为a和b两个标签的值
                    var a = $("#a").val();
                    var b = $("#b").val();
    //向服务器发送get请求,请求地址为demo_add
                    $.get("/demo_add/", { 'a': a, 'b': b }, function (ret) {
    //请求结果为ret,将请求结果赋值给id为result的节点
                        $('#result').html(ret)
                    })
                });
            });
        </script>
    </body>
    </html>
    

    结果

    image.png

    相关文章

      网友评论

        本文标题:不刷新页面请求数据(Django+ajax+jquery)

        本文链接:https://www.haomeiwen.com/subject/mlzsoxtx.html