Django与Ajax二---实现登录验证

1>先看下之前form表单实现

Django与Ajax二---实现登录验证_第1张图片

Django与Ajax二---实现登录验证_第2张图片

Django与Ajax二---实现登录验证_第3张图片

这里一下引出了两个新的概念

    1> enctype="application/x-www-form-urlencoded" 参数

    2> request.body

    我们先看下enctype参数吧,它有三个选值,如下(有一个基本不用,就没显示出来)

   Django与Ajax二---实现登录验证_第4张图片

   第一个是默认参数,这样服务器这边就会把需要传递的键值对(name 和实际值),组装成a=1&b=2&。。。

   这种方式发送给server端,server端接受到你的传值编码方式,就知道如何取值,但是不管什么值,都会先放入body

   里面,而Django这边为了方便取值,做了类似反序列化的处理(转成了json字串),并存如了POST里面,这样,

    我们就可以直接从request.POST直接取值了。

    有了enctype的概念,我们先看下ajax的登录验证,

2>ajax登录验证

Django与Ajax二---实现登录验证_第5张图片

Django与Ajax二---实现登录验证_第6张图片

如上,默认也是urlencoded,

3>完善下这个功能,实现之前用户名验证局部刷新的效果,如下

Django与Ajax二---实现登录验证_第7张图片

Django与Ajax二---实现登录验证_第8张图片

效果如下

Django与Ajax二---实现登录验证_第9张图片

这里有几个要注意的点:

项目中很少返回单个字符串,一般都是返回这类json数据,返回值注意只能是字符串,所以server这边要用

json.dumps(json)序列化,然后js那边收到字符串格式的json,就要用JSON.parse(json_string)反序列化,

这样就能方便取值了,每种语言对json数据都有对应的处理方式,这也是json格式数据能通用于各类语言的魅力。

你可能感兴趣的:(python学习)