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

     

  • 相关阅读:
    跨域请求携带cookie
    vue keep-alive
    关于js replace 第二个参数时函数时,函数参数解析
    前端开发规范之CSS
    git命令集合(正在完善中...)
    怎么写jQuery的插件
    git命令集合
    GitHub创建静态网站预览方法
    正则表达式
    各种浏览器全屏模式的方法、属性和事件介绍
  • 原文地址:https://www.cnblogs.com/chenchao1990/p/5288385.html
Copyright © 2020-2023  润新知