flask框架基础
if form.validate_on_submit():
<br>
user = User.query.filter_by(username=form.username.data).first()
<br>
if user is None or not user.check_password(form.password.data):
<br>
flash('Invalid username or password')
<br>
return redirect(url_for('login'))
<br>
login_user(user, remember=form.remember_me.data)
<br>
return redirect(url_for('index'))
<br>
return render_template('login.html', title='Sign In', form=form)
<br>
```
<br>
<br>
current_user表示当前登录的用户,is_authenticated属性用于判断用户是否已登录。login_user()函数用于登录用户,remember参数指定是否记住用户的登录状态。
<br>
<br>
### 7.5 实现注销功能
<br>
<br>
```
<br>
@app.route('/logout')
<br>
def logout():
<br>
logout_user()
<br>
return redirect(url_for('index'))
<br>
```
<br>
<br>
logout_user()函数用于注销当前登录的用户。
<br>
<br>
### 7.6 保护路由
<br>
<br>
使用@login_required装饰器可以保护路由,只有已登录的用户才能访问该路由。
<br>
<br>
```