Ajax

初始Ajax

先来回顾下Json

import json



######################################json序列化######################
# d={"name":"egon","age":12}
#
# data=json.dumps(d)
#
# print(data)
# print(type(data))
# f=open("a.txt","w")
#
# f.write(data)
# f.close()

################################ 反序列化##################################


# f=open("b","r")
#
# data=f.read()
# data=json.loads(data)
# print(data)
# print(type(data))


#++++++++++++++++++++++++++++++++++++


i=10                   #数字
s='hello'              #字符串
l=[111,222,333]        #列表
b=True                 #布尔值
t=(1,2,3)              #元祖
d={'name':'yuan'}      #字典

print(json.dumps(i))    #    10
print(json.dumps(s))    #    "hello"
print(json.dumps(l))    #    [111, 222, 333]
print(json.dumps(t))    #    [1, 2, 3]
print(json.dumps(d))    #    {"name": "yuan"}
print(json.dumps(b))    #    true
JSON

注意:loads是可以loads出任何Json的数据,loads出来的是字典。列表,元祖dumps是数组。

Js也支持单引号。

特点:

Json是JS的子集;  

JSon只认双引号;

JSon一定是一个字符串;

反序列化的是Json的对象;

我们一般说的JSon是指Json的字符串

parse()当于loads

stringfy(():相当于dumps

XML很重要(金融,Java等领域)

JSon的序列化与反序列化:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Title</title>
    <script>



        //  JS 的json序列化与反序列化方法

        //  parse()
        s='{"name":1}';
        var data=JSON.parse(s);
        console.log(data);
        console.log(typeof data);

        // stringfy

        s2={'name':'yuan'};
        console.log(JSON.stringify(s2))    // {"name":"yuan"}



    </script>
</head>
<body>

</body>
</html>
View Code

课上笔记:

前端向后端发送数据:

    GET:
        地址栏
        a标签
        form
    post:
        form
     AJAS:是JS的一种向后端服务器发送数据技术


json: 数据交换格式

        json是JS的子集
        json只认双引号
        json一定是一个字符串

        {"name":[111,222,333],"age":[111222,123,12312]}


AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步Javascript和XML”。

    功能:是JS的一种向后端服务器发送数据技术

    特点:
        1 异步交互
        2 局部刷新


    写在js文件,或者<script>;
    jquery实现的Ajax

         $.ajax({
              url: ""    ,// 请求路径
              type:""    ,// 请求方式
              success:function(data){

              }

         })


         参数:
             data:{"name":"yuan"}
             if  processData=false:不对数据做预处理,不涉及编码类型
             if  processData=true:
                                  设计编码类型:
                                  contentType:默认值: "application/x-www-form-urlencoded"
View Code

课上代码:

views代码:

from django.shortcuts import render,HttpResponse

# Create your views here.


def index(request):
    # import  time
    # time.sleep(10)
    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")

    response={"flag":False}#定义一个flag
    if username=="yuan" and password=="123":
        response["flag"]=True
    import json
    import time

    time.sleep(10)
    return HttpResponse(json.dumps(response))#返回一个json格式
View Code

html代码(用json做数据的验证)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Title</title>
</head>
<body>

<a href="/get_OK/">点击</a><span class="error"></span>
<hr>
<p>姓名<input type="text"></p>
<p>密码<input type="password"></p>
<p><button class="Ajax_send">Ajax_send</button><span class="login_error"></span></p>




<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.js "></script>
<script>
    $(".Ajax_send").click(function () {
        // ajax请求

        $.ajax({
            url:"/get_ajax/",
            type:"GET",
            data:JSON.stringify({
               name:$(":text").val(),
               pwd:$(":password").val()
            }),    // 请求数据 ,是js数据    ?name=yuan&pwd=123
            contentType:"application/json",
            success:function (data) {
                var data=JSON.parse(data);
                console.log(data);
                console.log(typeof data);
                // $(".error").html(data)

                if(!data["flag"]){
                    $(".login_error").html("用户名或者密码错误")
                }


            }
        })



    })
</script>
</body>
</html>
View Code
原文地址:https://www.cnblogs.com/1a2a/p/7828505.html