Django中使用jquery的ajax進行數(shù)據(jù)交互的實例代碼
jquery框架中提供了$.ajax、$.get、$.post方法,用于進行異步交互,由于Django中默認(rèn)使用CSRF約束,推薦使用$.get
示例:實現(xiàn)省市區(qū)的選擇
最終實現(xiàn)效果如圖:

將jquery文件拷貝到static/js/目錄下

打開booktest/views.py文件,定義視圖area1,用于顯示下拉列表
#提供顯示下拉列表的控件,供用戶操作 def area1(request): return render(request,'booktest/area1.html')
打開booktest/urls.py文件,配置url
url('^area1/$',views.area1),
在templates/booktest/目錄下創(chuàng)建area1.html


<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="/static/js/jquery-1.12.4.min.js"></script>
<script>
$(function () {
$.get('/sheng/',function (data) {//{slist:[]}
var slist=data.slist;//[{},{},{}...]
var sheng=$('#sheng');
$.each(slist,function (i,n) {
//n==>{id:,title:}
sheng.append('<option value="'+n.id+'">'+n.title+'</option>')
});
});
$('#sheng').change(function () {
var sid=$(this).val();
if(sid!='0'){
$.get('/shi/',{'sid':sid},function (data) {
var slist=data.slist;
var shi=$('#shi').empty().append('<option value="0">請選擇</option>');
$('#qu').empty().append('<option value="0">請選擇</option>');
$.each(slist,function (i,n) {
shi.append('<option value="'+n.id+'">'+n.title+'</option>');
});
});
}
});
$('#shi').change(function () {
var sid=$(this).val();
if(sid!='0'){
$.get('/shi/',{'sid':sid},function (data) {
var slist=data.slist;
var shi=$('#qu').empty().append('<option value="0">請選擇</option>');
$.each(slist,function (i,n) {
shi.append('<option value="'+n.id+'">'+n.title+'</option>');
});
});
}
});
});
</script>
</head>
<body>
<select id="sheng">
<option value="0">請選擇</option>
</select>
<select id="shi">
<option value="0">請選擇</option>
</select>
<select id="qu">
<option value="0">請選擇</option>
</select>
</body>
</html>
運行服務(wù)器,在瀏覽器中輸入如下網(wǎng)址
瀏覽效果如下圖

打開booktest/views.py文件,定義視圖sheng,用于獲取省信息
url('^sheng/$',views.sheng),


from django.http import JsonResponse
def sheng(request):
slist=AreaInfo.objects.filter(aParent__isnull=True)
'''
[{id:,title:},{},{}]
'''
slist2=[]
for s in slist:
slist2.append({'id':s.id,'title':s.atitle})
return JsonResponse({'slist':slist2})
打開booktest/urls.py文件,配置url
url('^sheng/$',views.sheng),
在瀏覽器中輸入如下網(wǎng)址
http://127.0.0.1:8000/sheng/
瀏覽效果如下圖

打開booktest/views.py文件,定義視圖shi,用于根據(jù)編號獲取對應(yīng)的子級信息,如果傳遞的是省編號則獲取市信息,如果傳遞的是市編號則獲取區(qū)縣信息


#根據(jù)pid查詢子級區(qū)域信息
def shi(request):
sid=request.GET.get('sid')
slist=AreaInfo.objects.filter(aParent_id=sid)
slist2=[]
for s in slist:
slist2.append({'id':s.id,'title':s.atitle})
return JsonResponse({'slist':slist2})
打開booktest/urls.py文件,配置url
url('^shi/$',views.shi),
在瀏覽器中輸入如下網(wǎng)址
瀏覽效果如下圖

在瀏覽器中輸入如下網(wǎng)址
選擇效果如下圖

總結(jié)
以上所述是小編給大家介紹的Django中使用jquery的ajax進行數(shù)據(jù)交互的實例代碼,希望對大家有所幫助!
相關(guān)文章
jquery使用slideDown實現(xiàn)模塊緩慢拉出效果的方法
這篇文章主要介紹了jquery使用slideDown實現(xiàn)模塊緩慢拉出效果的方法,涉及slideDown方法操作模塊展示效果的技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-03-03
使用jQuery ajaxupload插件實現(xiàn)無刷新上傳文件
項目中會經(jīng)常用到AJAX無刷新上傳圖片,但是iframe上傳和flash插件都是比較復(fù)雜的,所以就找了一個jquery的插件。下面通過實例代碼給大家介紹使用jQuery ajaxupload插件實現(xiàn)無刷新上傳文件功能,需要的朋友參考下吧2017-04-04
jackson解析json字符串,首字母大寫會自動轉(zhuǎn)為小寫的方法
下面小編就為大家分享一篇jackson解析json字符串,首字母大寫會自動轉(zhuǎn)為小寫的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2017-12-12

