Django中使用jquery的ajax进行数据交互的实例代码


Posted in jQuery onOctober 15, 2017

jquery框架中提供了$.ajax、$.get、$.post方法,用于进行异步交互,由于Django中默认使用CSRF约束,推荐使用$.get

示例:实现省市区的选择

最终实现效果如图:

Django中使用jquery的ajax进行数据交互的实例代码

将jquery文件拷贝到static/js/目录下

Django中使用jquery的ajax进行数据交互的实例代码

打开booktest/views.py文件,定义视图area1,用于显示下拉列表

#提供显示下拉列表的控件,供用户操作
def area1(request):
 return render(request,'booktest/area1.html')

打开booktest/urls.py文件,配置url

url('^area1/$',views.area1),

在templates/booktest/目录下创建area1.html

Django中使用jquery的ajax进行数据交互的实例代码Django中使用jquery的ajax进行数据交互的实例代码

<!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>

运行服务器,在浏览器中输入如下网址

http://127.0.0.1:8000/area1/

浏览效果如下图

Django中使用jquery的ajax进行数据交互的实例代码

打开booktest/views.py文件,定义视图sheng,用于获取省信息

url('^sheng/$',views.sheng),

Django中使用jquery的ajax进行数据交互的实例代码Django中使用jquery的ajax进行数据交互的实例代码

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),

在浏览器中输入如下网址

http://127.0.0.1:8000/sheng/

浏览效果如下图

Django中使用jquery的ajax进行数据交互的实例代码

打开booktest/views.py文件,定义视图shi,用于根据编号获取对应的子级信息,如果传递的是省编号则获取市信息,如果传递的是市编号则获取区县信息

Django中使用jquery的ajax进行数据交互的实例代码Django中使用jquery的ajax进行数据交互的实例代码

#根据pid查询子级区域信息
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),

在浏览器中输入如下网址

http://127.0.0.1:8000/shi/?sid=140000/

浏览效果如下图

Django中使用jquery的ajax进行数据交互的实例代码

在浏览器中输入如下网址

http://127.0.0.1:8000/shi/

选择效果如下图

Django中使用jquery的ajax进行数据交互的实例代码

总结

以上所述是小编给大家介绍的Django中使用jquery的ajax进行数据交互的实例代码,希望对大家有所帮助!

jQuery 相关文章推荐
js和jquery中获取非行间样式
May 05 jQuery
jquery插件开发之选项卡制作详解
Aug 30 jQuery
jQuery实现可兼容IE6的淡入淡出效果告警提示功能示例
Sep 20 jQuery
jQuery中 DOM节点操作方法大全
Oct 12 jQuery
jQuery实现简单的下拉菜单导航功能示例
Dec 07 jQuery
jQuery each和js forEach用法比较
Feb 27 jQuery
Jquery属性的获取/设置及样式添加/删除操作技巧分析
Dec 23 jQuery
jQuery实现的图片点击放大缩小功能案例
Jan 02 jQuery
JQuery事件冒泡和默认行为代码实例
May 13 jQuery
jQuery带控制按钮轮播图插件
Jul 31 jQuery
jquery+ajax实现异步上传文件显示进度条
Aug 17 jQuery
jQuery列表动态增加和删除的实现方法
Nov 05 jQuery
jQuery实现的页面遮罩层功能示例【测试可用】
Oct 14 #jQuery
jQuery响应滚动条事件功能示例
Oct 14 #jQuery
jQuery实现的鼠标滚轮控制图片缩放功能实例
Oct 14 #jQuery
jQuery结合jQuery.cookie.js插件实现换肤功能示例
Oct 14 #jQuery
jQuery基于cookie实现换肤功能实例
Oct 14 #jQuery
jq源码解析之绑在$,jQuery上面的方法(实例讲解)
Oct 13 #jQuery
bootstrap可编辑下拉框jquery.editable-select
Oct 12 #jQuery
You might like
PHP Mysql编程之高级技巧
2008/08/27 PHP
array_multisort实现PHP多维数组排序示例讲解
2011/01/04 PHP
PHP管理内存函数 memory_get_usage()使用介绍
2012/09/23 PHP
解析php中获取系统信息的方法
2013/06/25 PHP
php数组转换js数组操作及json_encode的用法详解
2013/10/26 PHP
node.js中的fs.close方法使用说明
2014/12/17 Javascript
JS实现简单路由器功能的方法
2015/05/27 Javascript
javascript密码强度校验代码(两种方法)
2015/08/10 Javascript
基于jQuery实现的无刷新表格分页实例
2016/02/17 Javascript
js日期相关函数dateAdd,dateDiff,dateFormat等介绍
2016/09/24 Javascript
JavaScript实现的XML与JSON互转功能详解
2017/02/16 Javascript
jQuery插件FusionCharts实现的3D帕累托图效果示例【附demo源码】
2017/03/25 jQuery
Vue.js表单标签中的单选按钮、复选按钮和下拉列表的取值问题
2017/11/22 Javascript
9种改善AngularJS性能的方法
2017/11/28 Javascript
jQuery实现菜单的显示和隐藏功能示例
2018/07/24 jQuery
vuex如何重置所有state(可定制)
2019/01/17 Javascript
微信小程序身份证验证方法实现详解
2019/06/28 Javascript
[44:40]KG vs LGD 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
Python for Informatics 第11章之正则表达式(四)
2016/04/21 Python
Flask之flask-session的具体使用
2018/07/26 Python
PyQt5 对图片进行缩放的实例
2019/06/18 Python
python系统指定文件的查找只输出目录下所有文件及文件夹
2020/01/19 Python
在django项目中导出数据到excel文件并实现下载的功能
2020/03/13 Python
AmazeUI的下载配置与Helloworld的实现
2020/08/19 HTML / CSS
Mio Skincare中文官网:肌肤和身体护理
2016/10/26 全球购物
美国沃尔玛网上超市:Walmart
2020/08/14 全球购物
面向游戏玩家和书呆子的极客订阅盒:Loot Crate
2020/11/25 全球购物
简单说下OSPF的操作过程
2014/08/13 面试题
门卫人员岗位职责
2013/12/24 职场文书
红领巾心向党广播稿
2014/01/19 职场文书
校运会广播稿100字
2014/01/27 职场文书
合作意向协议书
2015/01/29 职场文书
长江七号观后感
2015/06/11 职场文书
《法国号》教学反思
2016/02/22 职场文书
使用logback实现按自己的需求打印日志到自定义的文件里
2021/08/30 Java/Android
SpringBoot项目部署到阿里云服务器的实现步骤
2022/06/28 Java/Android