Flask login exercise

Keywords: PHP Session Redis Database Django

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.

Posted by Petty_Crim on Sat, 26 Oct 2019 12:00:19 -0700