zoukankan      html  css  js  c++  java
  • Flask特殊装饰器

    @app.before_request 请求进入视图函数之前
    @app.after_request 请求结束,返回影响客户端之前
    正常 be1 - be2 - be3 - vf - af3 - af2 - af1
    异常 be1 - be2 - af3 - af2 - af1
    @app.errorhandler(4xx or 5xx) 重定义错误信息
    @app.errorhandler(404)
    def error404(ErrorMessage):
    print(ErrorMessage)
    return redirect("https://www.autohome.com.cn/beijing/asdfe32r24rff23r23r")
    # return send_file("image/1.jpg")
    代码如下:
    from flask import Flask, session, request, redirect, render_template, send_file
    app = Flask(__name__)
    # 开启session:
    app.secret_key = '$%^&*(%$%^&*('
    @app.before_request
    def be1():
    print("be1")
    @app.before_request
    def be2():
    print("be2")
    if request.path == "/login":
    return None
    if session.get("user"):
    return None
    else:
    return redirect("/login")
    @app.before_request
    def be3():
    print("be3")
    @app.after_request
    def af3(res):
    print("af3")
    return res
    @app.after_request
    def af2(res):
    print("af2")
    return res
    @app.after_request
    def af1(res):
    print("af1")
    return res
    @app.route("/login", methods=["Get", "Post"])
    def login():
    if request.method == "GET":
    return render_template("login.html")
    else:
    session["user"] = request.form.get("username")
    return "登录成功"
    @app.route("/index")
    def index():
    print("我是视图函数")
    return render_template("index.html")
    @app.route("/index1")
    def index1():
    return render_template("index.html")
    @app.route("/index2")
    def index2():
    return render_template("index.html")
    @app.errorhandler(404)
    def error404(ErrorMessage):
    print(ErrorMessage)
    return redirect("https://www.autohome.com.cn/beijing/asdfe32r24rff23r23r")
    # return send_file("image/1.jpg")
    if __name__ == '__main__':
    app.run()
    HTML页面如下:
    <!DOCTYPE html>
    <html lang="zh-CN">
    <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! -->
    <title>Bootstrap 101 Template</title>
    <!-- Bootstrap -->
    </head>
    <body>
    <h1>你好,世界!</h1>
    {#增加静态访问路径#}
    <img src="/static/1.jpg">
    </body>
    </html>
  • 相关阅读:
    高性能分布式计算与存储系统设计概要
    .NET核心代码保护策略
    Web 通信 之 长连接、长轮询(long polling)
    C++数据结构之二叉查找树(BST)
    T4:T4 笔记 + Trait 示例
    腾讯2014软件开发
    CSS选择器从右向左的匹配规则
    Js面向对象编程
    Js杂谈-正则的测试与回溯次数
    Microsoft Message Analyzer (微软消息分析器,“网络抓包工具
  • 原文地址:https://www.cnblogs.com/zhang-da/p/13190115.html
Copyright © 2011-2022 走看看