zoukankan      html  css  js  c++  java
  • flask 的类中间件

    转载 最后发布于2019-03-24 20:46:00 阅读数 99  收藏

    需求 :

    如果登陆了,就可以访问 index 和 home 页面,如果没登录就跳转到 login 登录

    要怎么解决呢, session 对, 用 session 除了 Login 函数之外的所有函数里面全校验 session 是否登录了

    太麻烦了,现在咱们只有3个函数,如果成百上千个怎么整啊

    装饰器,对没错,装饰器是一个很好的方案,但是啊,我现在还是成败上千个函数,我要在每一个函数定义的时候加上@装饰器,还是很麻烦

    解决办法:  -->  @app.before_request 在请求(request)进入视图函数之前执行

    from flask import Flask,request,redirect,session
    app = Flask(__name__) # type:Flask 
    app.secret_key = "zc"

    @app.before_request # 在请求进来之前执行
    def is_login():
      if request.path == "/login": # 判断路径,如果是/login,就pass
        return None
      if not session.get("user"): # 没有获取到 user,证明没登录,就返回login
        return redirect("/login")

    @app.route("/login")
    def login():
      return "Login"

    @app.route("/index")
    def index():
      return "Index"
    @app.route("/home") def home(): return "Login" app.run("0.0.0.0", 5000)
    小贴士 -- 还有一个要提的 @app.before_first_request 它与 @app.before_request 极为相似或者说是一模一样,只不过它只会被执行一次

    响应   @app.after_request 在响应(response)返回客户端之前执行 , 结束视图函数之后

    @app.after_request
    def foot_log(environ):
        if request.path != "/login":
            print("有客人访问了",request.path)
        return environ
    现在用的少了

    转载于:https://www.cnblogs.com/zhangchen-sx/p/10590250.html

  • 相关阅读:
    好还是坏:人工智能二分类问题
    神经网络手写数字识别
    TensorFlow or PyTorch
    什么是深度学习
    五个常见 AI 开发库
    AI——第四次工业革命
    NodeJs获取不到POST参数
    Android权限
    【nodejs学习】3.进程管理及异步编程
    每日一题
  • 原文地址:https://www.cnblogs.com/fengff/p/12426840.html
Copyright © 2011-2022 走看看