Flask登录练习
Posted youxiu123
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flask登录练习相关的知识,希望对你有一定的参考价值。
基于蓝图CBV模式的登录
使用蓝图并用cbv模式完成登录功能
登录成功后跳转到首页
将session保存在liunx上的redis数据库
使用before_request验证是否是登陆用户
蓝图
from flask import Blueprint,render_template,redirect,views,request,session user = Blueprint("user",__name__) class User(views.MethodView): def get(self): return render_template("login.html") def post(self): username = request.form.get("username") password = request.form.get("password") if username == "henry" and password == "123": session["username"] = username uname = session.get("username") print(uname) return redirect("home") else: return "username or password error" user.add_url_rule("/login",endpoint=None,view_func=User.as_view(name="login"))
主程序
from flask import Flask,request,redirect,session from flask_session import Session from redis import Redis from user_login.login_blue import user app = Flask(__name__) app.register_blueprint(user) app.config["SESSION_TYPE"]="redis" app.config["SESSION_REDIS"]=Redis(host="192.168.61.138",port=6380,db=2,password="root") Session(app) @app.before_request # 相当于django的中间件 def auth(): # 白名单放行 if request.path == "/login": return None # 判断是否是登录用户 if session.get("username"): return None else: # 如果不是登录页面就会跳转到登录页面 return redirect("login") @app.route("/home") def home(): return "这是homo页面" if __name__ == ‘__main__‘: app.run()
登录演示
没有登录时访问home页面会跳转到登录页面,让用户登录;
登录成功后会跳转到home页面,登录成功后我们写入了session保持会话,我们可以直接访问登录后的所有页面;
以上是关于Flask登录练习的主要内容,如果未能解决你的问题,请参考以下文章
flask-login怎么实现用多个model登录,如管理员表,用户表分开登录