不刷新頁(yè)面請(qǐng)求數(shù)據(jù)(Django+ajax+jquery)

一個(gè)簡(jiǎn)單加法的例子

網(wǎng)上找了些資料,大部分資料由于Django版本低,沒(méi)法直接用,自己寫(xiě)好做個(gè)記錄。
做ajax頁(yè)面請(qǐng)求主要有 點(diǎn):

urls.py

建立兩個(gè)url路徑,demo_ajaxdemo_add

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

demo_ajax顯示加法輸入框和按鈕,demo_add導(dǎo)航到views試圖,用于處理加法并返回結(jié)果。

views.py

兩個(gè)試圖對(duì)應(yīng)兩個(gè)urls,demo_ajax視圖直接渲染demo_ajax.html模板,demo_add視圖處理GET請(qǐng)求。

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模板頁(yè)面

<!DOCTYPE html>
<html>
<head>
    {% load static %}
</head>
<body>
    <p>請(qǐng)輸入兩個(gè)數(shù)字</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>
//這里是關(guān)鍵點(diǎn) .ready 函數(shù)好像監(jiān)聽(tīng)器。
        $(document).ready(function () {
//jq的處理函數(shù),當(dāng)點(diǎn)擊提交按鈕時(shí)執(zhí)行。
            $("#sum").click(function () {
//得到頁(yè)面中id為a和b兩個(gè)標(biāo)簽的值
                var a = $("#a").val();
                var b = $("#b").val();
//向服務(wù)器發(fā)送get請(qǐng)求,請(qǐng)求地址為demo_add
                $.get("/demo_add/", { 'a': a, 'b': b }, function (ret) {
//請(qǐng)求結(jié)果為ret,將請(qǐng)求結(jié)果賦值給id為result的節(jié)點(diǎn)
                    $('#result').html(ret)
                })
            });
        });
    </script>
</body>
</html>

結(jié)果

image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。