一. 退出登录
(1). 编写退出登录函数 apps / user / views.py
# 退出登录
@user_bp.route("/logout")
def logout():
# 删除session
# del session["uid"]
session.clear()
return redirect(url_for("user.index"))
(2). 编写base.html公共模板,配置退出路径
<li><a href="{{ url_for('user.logout') }}">退出</a></li>
二. 登录前置校验
(1). 在apps / user / views.py中定义钩子函数,判断哪些页面需要登录才能访问
# 需要校验的路径
required_login_list = ["/user/center",
"/user/change",
"/article/publish",
'/user/upload_photo',
'/user/photo_del',
'/article/add_comment',
'/user/aboutme',
"/user/showabout", ]
# 每次请求都会执行一次(重点)
@user_bp1.before_app_request
def first_reqeust():
print("before_app_request", request.path)
if request.path in required_login_list:
id = session.get("uid")
if not id:
return render_template('users/login.html')
else:
user = User.query.get(id)
# g对象, 本次请求的对象
g.user = user