Django 使用Ajax进行前后台交互的示例讲解


Posted in Python onMay 28, 2018

本文要实现的功能是:根据下拉列表的选项将数据库中对应的内容显示在页面,选定要排除的选项后,提交剩余的选项到数据库。

为了方便前后台交互,利用了Ajax的GET和POST方法分别进行数据的获取和提交。

代码如下:

<!--利用获取的数据进行表单内容的填充-->
<script>
$("#soft_id").change(function(){
var softtype=$("#soft_id").find("option:selected").text();
var soft={'type_id':softtype}
$.ajax( {
 type: 'GET',
 url:'/data/soft-filter/{{family}}',
 dataType: 'json',
 data:soft,
 success: function( data_get ){
 build_dropdown( data_get, $( '#min_version' ), '请选择最低版本' );//填充表单
 build_dropdown( data_get, $( '#max_version' ), '请选择最高版本' );
 build_div(data_get,$('#soft_affected'));
 }
 }); 
 });
 var build_dropdown = function( data, element, defaultText ){
 element.empty().append( '<option value="">' + defaultText + '</option>' );
 if( data ){
 $.each( data, function( key, value ){
 element.append( '<option value="' + key + '">' + value + '</option>' );
 } );
 }
 }
 var build_div = function( data, element){
 if( data ){
 element.empty();
 $.each( data, function( key, value ){
  element.append(' <li class="clearfix"> <div class="todo-check pull-left"><input name="chk" type="checkbox" value="'+value+'" /></div> <div class="todo-title">'+value+' </div><div class="todo-actions pull-right clearfix"><a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="todo-complete"><i class="fa fa-check"></i></a><a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="todo-edit"><i class="fa fa-edit"></i></a><a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="todo-remove"><i class="fa fa-trash-o"></i></a></div> </li>');
 } );
 }
}
</script>
<!--选择并提交数据-->
<script>
//选择数据
function postselect (){
  var seleitem=new Array();
 $("input[name='chk']").each(function(i){
 if(!($(this).is( ":checked" )) ){
  seleitem[i]=$(this).val();
  // alert(seleitem[i]); 
}
});
//将排除后的数据提交到后台数据库
var soft={'type_id':seleitem}
$.ajax( {
 type: 'POST',
 url:'/data/soft-submit',
 dataType: 'json',
 data:soft,
 success: function( data_get ){
 }
 });
}
</script>

部分html代码为:

<div style="overflow: hidden;" >
      <ul id='soft_affected' class="todo-list sortable">
      </ul>
 </div>

views.py中处理请求和响应代码:

def soft_submit(request):
 if request.is_ajax():
  id=request.POST.get('type_id')
 return HttpResponse("success")
def soft_filter(request,fami):
 softtype=''
 ajax_release_version=[]
 release_version=[]
 if request.is_ajax():
  softtype=request.GET.get('type_id')
  soft_type=SoftTypeRef.objects.using('vul').filter(description=softtype)
  soft_tp_id=0
  for i in soft_type:
   soft_tp_id= i.soft_type_id
  web_soft=SoftWeb.objects.using('vul').filter(soft_type_id=soft_tp_id)
  for i in web_soft:
   ajax_release_ver=i.release_version
   ajax_release_version.append(ajax_release_ver)
  return HttpResponse(json.dumps(ajax_release_version), content_type='application/json')

以上这篇Django 使用Ajax进行前后台交互的示例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中处理字符串的相关的len()方法的使用简介
May 19 Python
python文件操作之目录遍历实例分析
May 20 Python
举例详解Python中threading模块的几个常用方法
Jun 18 Python
Python多线程爬虫实战_爬取糗事百科段子的实例
Dec 15 Python
python实现单链表的方法示例
Sep 03 Python
详解Django配置优化方法
Nov 18 Python
python中判断文件结束符的具体方法
Aug 04 Python
python实现图片素描效果
Sep 26 Python
jupyter notebook 写代码自动补全的实现
Nov 02 Python
如何利用Python实现一个论文降重工具
Jul 09 Python
Python读取和写入Excel数据
Apr 20 Python
python实现一个简单的贪吃蛇游戏附代码
Jun 28 Python
Python实现爬虫爬取NBA数据功能示例
May 28 #Python
Django+Ajax+jQuery实现网页动态更新的实例
May 28 #Python
Python实现合并两个列表的方法分析
May 28 #Python
django js实现部分页面刷新的示例代码
May 28 #Python
Django项目中用JS实现加载子页面并传值的方法
May 28 #Python
Python面向对象类继承和组合实例分析
May 28 #Python
django传值给模板, 再用JS接收并进行操作的实例
May 28 #Python
You might like
Banner程序
2006/10/09 PHP
php相当简单的分页类
2008/10/02 PHP
浅析PHP substr,mb_substr以及mb_strcut的区别和用法
2013/06/21 PHP
js获取提交的字符串的字节数
2009/02/09 Javascript
基于jquery的固定表头和列头的代码
2012/05/03 Javascript
javascript+html5实现仿flash滚动播放图片的方法
2015/04/27 Javascript
利用JavaScript的AngularJS库制作电子名片的方法
2015/06/18 Javascript
jQuery滚动新闻实现代码
2016/06/26 Javascript
jQuery编写网页版2048小游戏
2017/01/06 Javascript
JSONP基础知识详解
2017/03/19 Javascript
Angularjs 实现移动端在线测评效果(推荐)
2017/04/05 Javascript
jQuery上传插件webupload使用方法
2017/08/01 jQuery
vue-star评星组件开发实例
2018/03/01 Javascript
原生js实现form表单序列化的方法
2018/08/02 Javascript
你准备好迎接vue3.0了吗
2020/04/28 Javascript
如何在postman测试用例中实现断言过程解析
2020/07/09 Javascript
在java中如何定义一个抽象属性示例详解
2017/08/18 Python
python实现二叉树的遍历
2017/12/11 Python
Linux下Pycharm、Anaconda环境配置及使用踩坑
2018/12/19 Python
python使用wxpy实现微信消息防撤回脚本
2019/04/29 Python
python 实现12bit灰度图像映射到8bit显示的方法
2019/07/08 Python
用Python调用win命令行提高工作效率的实例
2019/08/14 Python
python调用支付宝支付接口流程
2019/08/15 Python
Python绘制三角函数图(sin\cos\tan)并标注特定范围的例子
2019/12/04 Python
pytorch标签转onehot形式实例
2020/01/02 Python
Python基础教程(一)——Windows搭建开发Python开发环境
2020/07/20 Python
资生堂美国官网:Shiseido美国
2016/09/02 全球购物
eBay英国购物网站:eBay.co.uk
2019/06/19 全球购物
哈萨克斯坦最大的时装、鞋子和配饰在线商店:Lamoda.kz
2019/11/19 全球购物
《老山界》教学反思
2014/04/08 职场文书
统计工作个人总结
2015/03/03 职场文书
告诉你一个秘密:富人致富的五大优点
2019/07/11 职场文书
导游词之上海杜莎夫人蜡像馆
2019/11/22 职场文书
解决Maven项目中 Invalid bound statement 无效的绑定问题
2021/06/15 Java/Android
python模块与C和C++动态库相互调用实现过程示例
2021/11/02 Python
HTML 里 img 元素的 src 和 srcset 属性的区别详解
2023/05/21 HTML / CSS