Django中的Ajax


Ajax

  很多时候,我们在网页上请求操作时,不需要刷新页面。实现这种功能的技术就要Ajax!(本人定义,不可迷信

 

jQuery中的ajax就可以实现不刷新页面就能向后台请求或提交数据的功能,我们仍然用它来做django中的ajax,所以先把jquey下载下来,版本越高越好。

 

一、ajax发送简单数据类型:


html代码
:在这里我们仅发送一个简单的字符串

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title></title>
 6 </head>
 7 <body>
 8 
 9 <input type="button" onclick="AjaxSubmit();" value="提交">
10 
11 
12 <script src="/static/jquery-1.12.1.min.js"></script>
13 <script>
14     function AjaxSubmit(){ 15         var host = '1.1.1.1'; 16         var port = '1111'; 17  $.ajax({ 18  url:"/app01/ajax_submit/", 19  type:'POST', 20  data:{host:host,port:port}, 21  success: function (arg) {
23  } 24 
25  }); 26  }
30 </script>
31 
32 </body>
33 </html>

 

django下app里views.py

# coding:utf-8
from django.shortcuts import render,HttpResponse def ajax_submit(request): print request.POST     #客户端发来的数据
    return render(request,'ajax_submit.html')

打印出来的数据样式:

 

 

二、ajax发送复杂的数据类型:

html代码:在这里我们仅发送一个列表中包含字典数据类型

由于发送的数据类型为列表 字典的格式,我们提前要把它们转换成字符串形式,否则后台程序接收到的数据格式不是我们想要的类型,所以在ajax传输数据时需要JSON

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title></title>
 6 </head>
 7 <body>
 8 
 9 <input type="button" onclick="AjaxSubmit_set();" value="提交集合">
10 
11 <script src="/static/jquery-1.12.1.min.js"></script>
12 <script>
13 
14 
15         function AjaxSubmit_set(){ 16         var data_list = [ 17  {'name':'chenchao','age':18}, 18  {'name':'lisi','age':19}, 19  {'name':'wangwu','age':13} 20 
21  ]; 22 
23  $.ajax({ 24  url:"/app01/ajax_submit_set/", 25  type:'POST', 26  tradition:true, 原生模式 27  data:{data:JSON.stringify(data_list)}, 28  success: function (arg) { 29 
30  } 31 
32  }); 33  } 34 
35 </script>
36 
37 </body>
38 </html>

 

django下app里views.py

1 def ajax_submit_set(request): 2     print request.POST 3     return render(request,'ajax_submit.html')

打印出来的数据样式:

 

 

 

三、稍等、还没完。

虽然我们实现了功能,但这还不够,因为显得不是很专业,所以我们稍作处理。

success: function (arg) { }  如果ajax提交数据成功,那么就会自动执行这里面的函数

html代码:

 1 <!DOCTYPE html>  2 <html lang="en">  3 <head>  4 <meta charset="UTF-8">  5 <title></title>  6 </head>  7 <body>  8  9 <input type="button" onclick="AjaxSubmit();" value="提交"> 10 <input type="button" onclick="AjaxSubmit_set();" value="提交集合"> 11 12 <script src="/static/jquery-1.12.1.min.js"></script> 13 <script> 14 function AjaxSubmit(){ 15 var host = '1.1.1.1'; 16 var port = '1111'; 17  $.ajax({ 18  url:"/app01/ajax_submit/", 19  type:'POST', 20  data:{host:host,port:port}, 21  success: function (arg) { 22  } 23  }); 24  } 25 26 function AjaxSubmit_set(){ 27 var data_list = [ 28  {'name':'chenchao','age':18}, 29  {'name':'lisi','age':19}, 30  {'name':'wangwu','age':13} 31  ]; 32 33  $.ajax({ 34  url:"/app01/ajax_submit_set/", 35  type:'POST', 36  tradition:true, 37  data:{data:JSON.stringify(data_list)}, 38  success: function (arg) { //如果程序执行成功就会执行这里的函数 39 var callback_dic = $.parseJSON(arg); 40 41 if(callback_dic.status){ 42  alert('成功'); 43  }else{ 44  alert(callback_dic.error); //把错误的信息从后台提出展示出来 45  } 46  } 47  }); 48  } 49 50 </script> 51 52 </body> 53 </html>

 

django下app里views.py

 1 # coding:utf-8  2 from django.shortcuts import render,HttpResponse,redirect  3 def ajax_submit(request):  4  5 print request.POST  6 return render(request,'ajax_submit.html')  7  8  9 import json 10 11 12 def ajax_submit_set(request): 13 ret = {'status': True,'error': ""} 14 try: 15 print request.POS 16 except Exception, e: 17 ret['status'] = False 18 ret['error'] = str(e) 19 j_ret = json.dumps(ret) 20 return HttpResponse(j_ret)

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM