半个月了,我们已经对flask有了进一步的了解,大家都知道我们在做任何一个小项目的时候都会有登陆和注册,
今天来给说说登陆页面的基本验证逻辑,话不多说,代码如下:
简单的导包我就不一 一列举:
#登陆页面
@userctrl.route('/sign_in')
def signin():
return render_template('sign_in.html')
在这里‘sign_in.html’ 是自己用前端的html做出来的一个登陆页面,
下边说说我们在后端写的简单逻辑:
#登陆验证逻辑mysql版本
@userctrl.route('/checkuser_mysql/username=<username>/password=<password>',methods = ['POST','GET'])
def checkuser_mysql(username,password):
#在mysql数据库中查找用户
res = db_mysql.session.execute('select * from user where name="%s"and password ="%s"'%(username,password))
#强转数据类型
res = list(res)
#判断是否找到该用户
if len(res) == 0:
return jsonify({'result':0})
else:
return jsonify({'result':1})
#登陆验证逻辑
#mongo 版本逻辑
#使用路由传参的形式
@userctrl.route('/checkuser/username=<username>/password=<password>',methods=['GET','POST'])
#路由方法的参数必须和网址中参数一致
def checkuser(username,password):
res = db.user.find_one({'username':username,'password':password})
#判断None对象,用not或者is
if res is None:
return jsonify({'result':0})
else:
return jsonify({'result':1})
上边是mysql和mongo两个数据库的登陆逻辑(任选其一,注意登陆和注册要选相同的数据库)
写了后端的判断逻辑,我们还需去前端我们做定义的html里写相应的逻辑(我这里是‘sign_in.html’),我直接写判断逻辑了:
<script>
//写方法提交用户名和密码
function sign_in(){
//获取用户名
var username = $("#username").val()
//获取密码
var password = $('#password').val()
//拼接url
// var url= '/checkuser_mysql/username='+username+'/password='+password
var url= '/checkuser/username='+username+'/password='+password
//发送数据获取json格式的响应
$.getJSON(url,function(mes){
if(mes.result==0){
alert('用户名或密码错误')
}else{
//alert('登陆成功')
//跳转页面
//存储账号信息,设置生命周期
//获取当前时间
var date = new Date();
date.setTime(date.getTime() + 1000*60*60*24);
// console.log(date)
$.cookie('username',username,{expires:date});
window.location.href='/'
这里跳转是自己定义的
}
})
}
</script>
简单的登陆验证逻辑写完了 感谢阅读!
语句欣赏:
好学而不勤问非真好学者。