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中通过预先编译正则表达式提高效率
Sep 25 Python
python3使用pyqt5制作一个超简单浏览器的实例
Oct 19 Python
python selenium自动上传有赞单号的操作方法
Jul 05 Python
python 读取文本文件的行数据,文件.splitlines()的方法
Jul 12 Python
Python版名片管理系统
Nov 30 Python
Django框架实现分页显示内容的方法详解
May 10 Python
PyTorch搭建一维线性回归模型(二)
May 22 Python
布隆过滤器的概述及Python实现方法
Dec 08 Python
基于python实现语音录入识别代码实例
Jan 17 Python
python线程join方法原理解析
Feb 11 Python
tensorflow安装成功import tensorflow 出现问题
Apr 16 Python
详解Python中namedtuple的使用
Apr 27 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
thinkphp学习笔记之多表查询
2014/07/28 PHP
PHP的文件操作与算法实现的面试题示例
2015/08/10 PHP
php实现的农历算法实例
2015/08/11 PHP
js中点击空白区域时文本框与隐藏层的显示与影藏问题
2013/08/26 Javascript
深入理解JavaScript中的传值与传引用
2013/12/09 Javascript
使用GruntJS构建Web程序之合并压缩篇
2014/06/06 Javascript
js实现星星打分效果的方法
2020/07/05 Javascript
jQuery图片旋转插件jQueryRotate.js用法实例(附demo下载)
2016/01/21 Javascript
JS实现CheckBox复选框全选、不选或全不选功能
2020/07/28 Javascript
JS实现简单的二元方程计算器功能示例
2017/01/03 Javascript
ajax请求data遇到的问题分析
2018/01/18 Javascript
[05:05]第三天的dota2
2013/07/29 DOTA
[01:32:22]DOTA2-DPC中国联赛 正赛 Ehome vs VG BO3 第一场 2月5日
2021/03/11 DOTA
python读文件逐行处理的示例代码分享
2013/12/27 Python
python进阶教程之词典、字典、dict
2014/08/29 Python
Python写的一个定时重跑获取数据库数据
2016/12/28 Python
详谈Python2.6和Python3.0中对除法操作的异同
2017/04/28 Python
Django项目中添加ldap登陆认证功能的实现
2019/04/04 Python
利用python将图片版PDF转文字版PDF
2019/05/03 Python
用Python将Excel数据导入到SQL Server的例子
2019/08/24 Python
在python tkinter界面中添加按钮的实例
2020/03/04 Python
关于Python turtle库使用时坐标的确定方法
2020/03/19 Python
python进度条显示之tqmd模块
2020/08/22 Python
Python模拟登录requests.Session应用详解
2020/11/17 Python
CSS3中的@keyframes关键帧动画的选择器绑定
2016/06/13 HTML / CSS
在C#中如何实现多态
2014/07/02 面试题
一道输出判断型Java面试题
2014/10/01 面试题
办公室文秘自我鉴定
2013/09/21 职场文书
法人代表委托书
2014/04/04 职场文书
10的分与合教学反思
2014/04/30 职场文书
学校班班通实施方案
2014/06/11 职场文书
工地质量标语
2014/06/12 职场文书
学校教师安全责任书
2014/07/23 职场文书
政风行风整改报告
2014/11/06 职场文书
公司欠款证明
2015/06/24 职场文书
win10安装配置nginx的过程
2021/03/31 Servers