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生成验证码实例
Aug 21 Python
python中lambda函数 list comprehension 和 zip函数使用指南
Sep 28 Python
Python迭代器与生成器用法实例分析
Jul 09 Python
python中退出多层循环的方法
Nov 27 Python
PyCharm 设置SciView工具窗口的方法
Jan 15 Python
Django中使用haystack+whoosh实现搜索功能
Oct 08 Python
安装Pycharm2019以及配置anconda教程的方法步骤
Nov 11 Python
Python中实现输入一个整数的案例
May 03 Python
Django Form设置文本框为readonly操作
Jul 03 Python
Python过滤序列元素的方法
Jul 31 Python
Python绘图之二维图与三维图详解
Aug 04 Python
python二维图制作的实例代码
Dec 03 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
smarty实例教程
2006/11/19 PHP
PHP 伪静态技术原理以及突破原理实现介绍
2013/07/12 PHP
PHP简单处理表单输入的特殊字符的方法
2016/02/03 PHP
PHP利用二叉堆实现TopK-算法的方法详解
2017/04/24 PHP
php使用curl模拟多线程实现批处理功能示例
2019/07/25 PHP
滚动图片效果 jquery实现回旋滚动效果
2013/01/08 Javascript
php和js对数据库图片进行等比缩放示例
2014/04/28 Javascript
抛弃Nginx使用nodejs做反向代理服务器
2014/07/17 NodeJs
javascript框架设计读书笔记之种子模块
2014/12/02 Javascript
jQuery实现布局高宽自适应的简单实例
2016/05/28 Javascript
AngularJs表单校验功能实例代码
2017/02/09 Javascript
JavaScript之underscore_动力节点Java学院整理
2017/07/03 Javascript
vuejs父子组件之间数据交互详解
2017/08/09 Javascript
js获取css的各种样式并且设置他们的方法
2017/08/22 Javascript
node中间层实现文件上传功能
2018/06/11 Javascript
快速解决bootstrap下拉菜单无法隐藏的问题
2018/08/10 Javascript
node.JS事件机制与events事件模块的使用方法详解
2020/02/06 Javascript
django简单的前后端分离的数据传输实例 axios
2020/05/18 Javascript
Vue如何提升首屏加载速度实例解析
2020/06/25 Javascript
JavaScript实现简单日历效果
2020/09/11 Javascript
vue实现标签云效果的示例
2020/11/09 Javascript
[04:40]2016国际邀请赛中国区预选赛全程TOP10镜头集锦
2016/07/01 DOTA
Python实现爬取知乎神回复简单爬虫代码分享
2015/01/04 Python
Python读取本地文件并解析网页元素的方法
2018/05/21 Python
python实现通过队列完成进程间的多任务功能示例
2019/10/28 Python
python实现的分析并统计nginx日志数据功能示例
2019/12/21 Python
分享全球十款超强HTML5开发工具
2014/05/14 HTML / CSS
印尼旅游网站:via
2017/11/12 全球购物
业务内勤岗位职责
2014/04/30 职场文书
大学生旷课检讨书1000字
2015/02/19 职场文书
2015年前台个人工作总结
2015/04/03 职场文书
python 机器学习的标准化、归一化、正则化、离散化和白化
2021/04/16 Python
Pygame Rect区域位置的使用(图文)
2021/11/17 Python
使用CSS连接数据库的方式
2022/02/28 HTML / CSS
详解SQL的窗口函数
2022/04/21 Oracle
Java版 单机五子棋
2022/05/04 Java/Android