zoukankan      html  css  js  c++  java
  • Flask框架第六篇.Flask中的蓝图和特殊装饰器

    1.Flask中的蓝图 Blueprint (app01)

    不能被run的Flask实例,不存在config

    Flask蓝图 https://www.cnblogs.com/DragonFire/p/9264381.html

    app01.py

    from flask import Blueprint
    ​
    bp = Blueprint("app01",__name__)  
    ​
    @bp.route("/add_user")
    def add_user():
        return "添加用户"
    ​
    @bp.route("/del_user")
    def del_user():
        return "删除用户"
    ​
    @bp.route("/update_user")
    def update_user():
        return "修改用户"
    ​
    @bp.route("/find_user")
    def find_user():
        return "查找用户"
    View Code

    app02.py

    from flask import Blueprint
    ​
    car_bp = Blueprint("app02",__name__,url_prefix="/car")  # url_prefix  url前缀
    ​
    @car_bp.route("/add_user")
    def add_user():
        return "car添加用户"
    ​
    @car_bp.route("/del_user")
    def del_user():
        return "car删除用户"
    ​
    @car_bp.route("/update_user")
    def update_user():
        return "car修改用户"
    ​
    @car_bp.route("/find_user")
    def find_user():
        return "car查找用户"
    View Code

    测试

    from flask import Flask
    from app01 import bp
    from app02 import car_bp
    ​
    app = Flask(__name__)
    app.register_blueprint(bp)  #注册蓝图
    app.register_blueprint(car_bp)
    ​
    if __name__ == '__main__':
        app.run("0.0.0.0",9527)
    View Code

    2.特殊装饰器

    Flask特殊装饰器 https://www.cnblogs.com/DragonFire/p/9269303.html

    @app.before_request   #在请求进入视图函数之前,做出处理
    ​
    @app.after_request    #在响应返回客户端之前,结束视图函数之后
    # be + af请求生命周期
         正常 : be1 --> be2 --> vf -->af2 --> af1
         异常 : be1 -->af2 --> af1
         # 总结:只要有响应返回,af全都执行 
        
    @app.errorhandler(404)    #重定义错误返回信息 HttpErrorCode()  
    from flask import Flask,session,jsonify
    from setting import DebugConfig,TestConfig
    from users import bp
    from car_user import car_bp
    ​
    app = Flask(__name__,template_folder="templatess")
    ​
    app.config.from_object(DebugConfig)
    # app.config.from_object(TestConfig)
    ​
    app.register_blueprint(bp)
    app.register_blueprint(car_bp)
    ​
    ​
    @app.before_request
    def be1():
        print("be1")
    ​
    @app.before_request
    def be2():
        print("be2")
    ​
    @app.after_request
    def af1(res):
        print("af1")
        return res
    ​
    @app.after_request
    def af1(res):
        print("af2")
        return res
    ​
    @app.errorhandler(404)
    def error404(error_message):
        print(error_message)
        return "你的页面出错了"  #5种类型
    if __name__ == '__main__':
        app.run()
    View Code
    from flask import Blueprint
    ​
    bp = Blueprint("app01",__name__,)
    ​
    @bp.route("/add_user")
    def add_user():
        print("vf")
        return "添加用户"
    View Code
  • 相关阅读:
    领域驱动设计概念(Domain-driven Design), Flower(响应式微服务框架)
    主流RPC框架通讯协议实现原理与源码解析
    响应式微服务框架Flower——快速上手
    netty源码-server端绑定端口流程
    ubuntu 20.04版本更新软件源为国内源(清华、网易、阿里云等等)
    ubuntu20.04源码安装nginx
    docker环境下Java获取cpu核心数不准确,实际上是宿主机的cpu核心数
    利用docker快速搭建创建开发环境
    mac配置python环境
    Apache Maven-创建项目
  • 原文地址:https://www.cnblogs.com/lilinyuan5474/p/15568877.html
Copyright © 2011-2022 走看看