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保持会话,我们可以直接访问登录后的所有页面;

转载于:https://www.cnblogs.com/songzhixue/p/11184939.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值