zoukankan      html  css  js  c++  java
  • Flask ~~“日久生情”(登陆验证的基本逻辑)

    好久不见啊!好久没有写博客了,这里送给大家迟来的祝福: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>

    这样简单的登陆页面验证逻辑就写完了。

    喜欢的语句分享给大家:

    万丈高楼平地起,辉煌只能靠自己。

  • 相关阅读:
    H
    并查集
    H
    Supermarket (贪心 并查集)
    H
    M
    N-Find a way
    HDU 4035 Maze
    #386. 【UNR #3】鸽子固定器
    P4688 [Ynoi2016]掉进兔子洞
  • 原文地址:https://www.cnblogs.com/sashao/p/10232459.html
Copyright © 2011-2022 走看看