Flask-登陸練習

基於藍圖CBV模式的登陸

使用藍圖並用cbv模式完成登陸功能html

登陸成功後跳轉到首頁redis

將session保存在liunx上的redis數據庫數據庫

使用before_request驗證是不是登錄用戶django

藍圖

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頁面會跳轉到登陸頁面,讓用戶登陸;flask

登陸成功後會跳轉到home頁面,登陸成功後咱們寫入了session保持會話,咱們能夠直接訪問登陸後的全部頁面;session

原文出處:https://www.cnblogs.com/songzhixue/p/11184939.htmlapp

相關文章
相關標籤/搜索