一個簡單加法的例子
網(wǎng)上找了些資料,大部分資料由于Django版本低刊殉,沒法直接用州胳,自己寫好做個記錄记焊。
做ajax頁面請求主要有 點(diǎn):
urls.py
建立兩個url路徑栓撞,demo_ajax
和demo_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
兩個試圖對應(yīng)兩個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>請輸入兩個數(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)聽器角塑。
$(document).ready(function () {
//jq的處理函數(shù)淘讥,當(dāng)點(diǎn)擊提交按鈕時執(zhí)行。
$("#sum").click(function () {
//得到頁面中id為a和b兩個標(biāo)簽的值
var a = $("#a").val();
var b = $("#b").val();
//向服務(wù)器發(fā)送get請求窒朋,請求地址為demo_add
$.get("/demo_add/", { 'a': a, 'b': b }, function (ret) {
//請求結(jié)果為ret蝗岖,將請求結(jié)果賦值給id為result的節(jié)點(diǎn)
$('#result').html(ret)
})
});
});
</script>
</body>
</html>
結(jié)果
image.png