密码保护
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'用户名不存在'