zoukankan      html  css  js  c++  java
  • Django Ajax学习一

    1. 简单的加法

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
    
    
    <input type="text" name="a" id="a"><span>+</span><input type="text" name="b" id="b">
    <button class="action">=</button>
    <input type="text" name="sum" id="c">
    
    <script src="jquery-3.2.1.min.js"></script>
    
    <script>
        $(".action").click(function () {
            a = parseInt($("#a").val());
            b = parseInt($("#b").val());
            c=a+b;
            $.ajax($("#c").val(c))
        })
    </script>
    
    
    </body>
    </html>
    

    2.  用户登录验证

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
    <a href="/get_OK/">点击</a><span class="error"></span>
    
    
    <p>姓名:<input type="text" name="name"></p>
    <p>密码:<input type="password" name="pwd"></p>
    <span class="login_error"></span>
    <p>
        <button class="Ajax_send">Ajax_send</button>
    </p>
    
    
    
    
    <script src="/static/jquery-3.2.1.min.js"></script>
    <script>
        $(".Ajax_send").click(function () {
            // ajax请求
    
            $.ajax({
                url: "/get_ajax/",
                type: 'GET',
                data: JSON.stringify({
                    name: $(":text").val(),
                    pwd: $(":password").val()
                }),
                contentType:"application/json",
                success: function (data) {
                    console.log(data);
                    var data=JSON.parse(data);
                    if(!data){
                        $(".login_error").html('用户名或密码错误');
                    }
                }
            })
    
        })
    </script>
    
    </body>
    </html>
    

    3. 视图函数

    import json
    from django.shortcuts import render,redirect,HttpResponse
    
    # Create your views here.
    
    def index(request):
        return render(request,'index.html')
    
    
    
    def get_OK(request):
        return render(request,'get_OK.html')
    
    def get_ajax(request):
        username=request.GET.get('name')
        password=request.GET.get('pwd')
    
        flag=False
        if username=="yuan" and password =='123':
            flag =True
    
        return HttpResponse(json.dumps(flag))
    

    3.  参数说明:

    ######################------------data---------################
    
           data: 当前ajax请求要携带的数据,是一个json的object对象,ajax方法就会默认地把它编码成某种格式
                 (urlencoded:?a=1&b=2)发送给服务端;此外,ajax默认以get方式发送请求。
    
                 function testData() {
                   $.ajax("/test",{     //此时的data是一个json形式的对象
                      data:{
                        a:1,
                        b:2
                      }
                   });                   //?a=1&b=2
    ######################------------processData---------################
    
    processData:声明当前的data数据是否进行转码或预处理,默认为true,即预处理;if为false,
                 那么对data:{a:1,b:2}会调用json对象的toString()方法,即{a:1,b:2}.toString()
                 ,最后得到一个[object,Object]形式的结果。
                
    ######################------------contentType---------################
    
    contentType:默认值: "application/x-www-form-urlencoded"。发送信息至服务器时内容编码类型。
                 用来指明当前请求的数据编码格式;urlencoded:?a=1&b=2;如果想以其他方式提交数据,
                 比如contentType:"application/json",即向服务器发送一个json字符串:
                   $.ajax("/ajax_get",{
                 
                      data:JSON.stringify({
                           a:22,
                           b:33
                       }),
                       contentType:"application/json",
                       type:"POST",
                 
                   });                          //{a: 22, b: 33}
    
                 注意:contentType:"application/json"一旦设定,data必须是json字符串,不能是json对象
    
    
    ######################------------traditional---------################
    
    traditional:一般是我们的data数据有数组时会用到 :data:{a:22,b:33,c:["x","y"]},
                  traditional为false会对数据进行深层次迭代;
    

    待续.. ...  

      

      

     

  • 相关阅读:
    [洛谷P1886]滑动窗口 (单调队列)(线段树)
    树状数组详细解析
    离散化
    kettle使用总结(一)
    springBoot开发的web项目打war包部署到已有的tomcat容器中
    集群时钟同步
    linux服务器安装nginx
    Tomcat学习之体系架构
    码云新建仓库上传项目
    linux系统安装mysql yum方式
  • 原文地址:https://www.cnblogs.com/supery007/p/7831307.html
Copyright © 2011-2022 走看看