Login based on blueprint CBV mode
Use blueprint and cbv mode to complete login function
Jump to the home page after login
Save the session in the redis database on liunx
Verify whether it is the login user by using "before" request
blueprint
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"))
Program entry
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 # Amount to django Middleware def auth(): # White list release if request.path == "/login": return None # Determine whether it is the login user if session.get("username"): return None else: # If it is not the login page, it will jump to the login page. return redirect("login") @app.route("/home") def home(): return "This is homo page" if __name__ == '__main__': app.run()
Login demonstration
If you do not log in, visiting home page will jump to login page to let users log in;
After successful login, we will jump to the home page. After successful login, we write the session to keep the session. We can directly access all the pages after login.