若依ajax返回数据,Ajax

楔子:

不同的编程语言拥有不同的数据类型,但很多时候都需要多种编程语言实现数据交互,而各语言都认识的数据类型就是字符串,而json是每个编程语言都提供的序列化方法,从而实现不同编程语言的数据交换。Ajax可以避免多次的向服务发送表单数据,减缓服务器的数据压力。

功能:

不刷新页面,实现客户端与服务端的数据交互。

特点:

异步交互

局部刷新

注意:

Ajax和jason并没有直接的关系,或者说两者根本就没关系,只是在js中,Ajax有时候需要配合json的使用。

在python中json的使用:

序列化:json.dumps()

反序列化:json.loads()

在js中json的使用:

序列化:JSON.stringfy()

反序列化:var data  = JSON.parse();

代码示例:

要实现的功能是:点击登录按钮,通过Ajax向服务器校验数据,若校验成功,点击登录后返回index页面,若校验不成功,则提示用户名或密码错误。

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 from app01 importmodels2 importjson3

4

5 deflogin(request):6 return render(request,"login.html")7

8

9

10

11 defche(request):12 ret = {"is_ok":False}13 user = request.POST.get("user")14 pwd = request.POST.get("pwd")15 try:16 tmp = models.User.objects.get(name=user,pwd=pwd)17 ret["is_ok"]=True18 returnHttpResponse(json.dumps(ret))19 exceptException:20 return HttpResponse(json.dumps(ret))

视图代码

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1

2

3

4

5

6

7

Title

8

9

10

请输入用户名:

11

请输入密码:

12

13

14

15 {% load static %}16

17

18 $.ajaxSetup({19 data: {csrfmiddlewaretoken: '{{ csrf_token }}'}20 });21 $(".sub").click(function () {22 $.ajax({23 url: "/che/",24 data: {"user": $(".user").val(), "pwd": $(".pwd").val()},25 type: "post",26 success: function (data) {27 console.log(data);28 {#将经过序列化的字典进行反序列化 #}

29 var val =JSON.parse(data);30 if(val.is_ok) {31 $("#erro").text("登录成功").css("color", 'green');32 location.href = '/index/';33 }34 else{35 $("#erro").text("用户名或密码错误").css("color", 'red');36 console.log("nidasdasd");37 }38 }39 })40 });41

42

43

44

45

前端代码

今天出现的一些问题:

采用不写死的方式引用css和js的时候,在引用之前要加上

1 {% load static %}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值