zoukankan      html  css  js  c++  java
  • 密码保护

    1.更新User对象,设置对内的_password

    class User(db.Model):

        __tablename__ = 'user' 

        _password = db.Column(db.String(200), nullable=False) #内部使用

    2.编写对外的password

    from werkzeug.security import generate_password_hash, check_password_hash

        @property

        def password(self):  #外部使用,取值

            return self._password

        @password.setter

        def password(self, row_password):#外部使用,赋值

            self._password = generate_password_hash(row_password)

    3.密码验证方法:

        def check_password(self, row_password): #密码验证

            result = check_password_hash(self._password,row_password)

            return result

    4.登录验证:

            password1 = request.form.get('password')

            user = User.query.filter(User.username == username).first()

            if user:

                if user.check_password(password1):

    # 创建用户模型
    class User(db.Model):
        __tablename__ = 'user'
        id = db.Column(db.Integer,primary_key=True,autoincrement=True)
        username = db.Column(db.String(20),nullable=False)
        _password=db.Column(db.String(200),nullable=False)
        # _password = db.Column(db.String(20),nullable=False) #内部使用
        nickname=db.Column(db.String(50))
    
    
        @property
        def password(self):  #外部使用
            return self._password
    
        @password.setter
        def password(self, row_password):
            self._password = generate_password_hash(row_password)
    
        def check_password(self, row_password):
                result = check_password_hash(self._password, row_password)
                return result
    
    
    #登录
    @app.route('/login/',methods={'GET','POST'})
    def login():
        if request.method=='GET':
            return render_template('login.html')
        else:
            username = request.form.get('username')  # 获取form中的数据
            password = request.form.get('password')
            nickname = request.form.get('nickname')
            user = User.query.filter(User.username == username).first()
    
            if user:
                if user.check_password(password):  #检查密码
                    session['user'] = username
                    session['userid']=user.id
                    session.permanent=True
                    return redirect(url_for('index'))  # 返回到首页
                else:
                    return u'error  password' #输出错误
            else:
                return u'username error'
  • 相关阅读:
    How To Scan QRCode For UWP (4)
    How To Crop Bitmap For UWP
    How To Scan QRCode For UWP (3)
    How To Scan QRCode For UWP (2)
    How To Scan QRCode For UWP (1)
    How to change windows applicatioin's position via Win32 API
    8 Ways to Become a Better Coder
    How to resize or create a thumbnail image from file stream on UWP
    C# winform压缩文件夹带进度条
    MS ACCESS MID函数
  • 原文地址:https://www.cnblogs.com/YyYyYy11/p/8086548.html
Copyright © 2011-2022 走看看