密码保护

from werkzeug.security import generate_password_hash,check_password_hash


class User(db.Model):
    __tablename__='user'
    id=db.Column(db.Integer,primary_key=TabError,autoincrement=True)
    username=db.Column(db.String(20),nullable=False)
    _password=db.Column(db.String(200),nullable=False)#内部使用
    nickname = db.Column(db.String(20), nullable=True)

    @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'])# 跳转登陆,methods定义它有两种请求方式
def login():
    if request.method == 'GET':
      return render_template('login.html')
    else:
        username = request.form.get('user')
        password = request.form.get('psw')
        user = User.query.filter(User.username == username).first()  # 判断用户名是否存在
        if user:
            if user.check_password(password):
                session['user'] = username
                session.permanent = True
                return   redirect(url_for('switch'))
            else:
                return u'密码错误'
        else:
            return u'用户名不存在'

 

posted @ 2017-12-22 14:23  008马佳槟  阅读(82)  评论(0编辑  收藏  举报