好久不见啊!好久没有写博客了,这里送给大家迟来的祝福:2019 祝大家心想事成,事业有成。
就简单说几句,半个月了,我们已经对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>
这样简单的登陆页面验证逻辑就写完了。
喜欢的语句分享给大家:
万丈高楼平地起,辉煌只能靠自己。