2019.04.07 电商12 登录界面的验证

本章中最主要的应该是验证码的验证和如何去使用

超链接的这种请求他属于get请求

src也属于get请求

 

如何生成验证码的图片

from utils.cope import *

有一个叫gene_code的函数会生成验证码   他有两个返回值img,txt 去接收

def get(self,request):
#调用工具包下的函数生成验证码
img,txt = gene_code()

#将txt保存到session
request.session['sessionCode'] = txt

#响应页面
return HttpResponse(img,content_type='image/png')

点击之后为什么会消失呢?响应界面内容,还要写响应内容的格式。

//切换验证码
function changeCode(obj){
$(obj).attr('src','/user/loadCode/?r='+new Date().getTime())
}


用的是JQuery对象,js对象转换成JQuery对象 改变其属性值.attr

onblur 失去焦点是事件 发送一个Ajax请求
$(Ajax){
  data:{'code':inputCode} 以一个json格式返回到后端
  async:false 默认是异步的请求,不过不换同步的话,那么会跳过请求的部分,直接登录了
}
def get(self,request):
#获取请求参数
code = request.GET.get('code','')
#获取系统生成的验证码
sessioncode = request.session.get('sessionCode')

flag = code == sessioncode

return JsonResponse({'flag':flag})
 
 //校验验证码是否正确
function checkCode(inputCode) {
var flag = false;
$.ajax({
url:'/user/checkCode/',
type:'GET',
data:{'code':inputCode},
async:false,
success:function (result) {
var cflag = result.flag;
if(cflag){
flag = true;
$('#cSpan').html('√');
}else{
$('#cSpan').html('×');
}
}
});
return flag;
}
</script>


为什么返回的是json格式
业务逻辑应该是 在js中的函数效验位数成功之后,返回return Ture
之后我这个判断上进行数据库验证

当点击登录的时候会发送一个请求,url,然后找到url的view视图中去操作
def post(self,request):
#获取请求参数
uname = request.POST.get('account','')
pwd = request.POST.get('password','')
#数据库中查询当前用户是否存在
userList = UserInfo.objects.filter(uname=uname,pwd=pwd)
#判断是否登录成功
if userList:
request.session['user'] = userList[0]
return HttpResponseRedirect('/user/center/')
return HttpResponseRedirect('/user/login/')
autocompete= ‘off’  消除文本框以前的记录
<script>
$('.logout').click(function() {
$.get('/user/logout/',function (result) {
var flag = result.flag;
if(flag){
location.href='/user/login/';
}
});
});

</script>

class Logout(View):
def get(self,request):
#清空session对象中的所有数据
request.session.clear()
return JsonResponse({'flag':True})


posted @ 2019-04-07 20:38  AJking  阅读(372)  评论(0编辑  收藏  举报