flask中的中间件
flask的中间件功能和Django类似,不同的是使用的是使用3个装饰器来实现的;
1.@app.before_first_request :请求第1次到来执行1次,之后都不执行;
2.@app.before_request:请求到达视图之前执行;(改函数不能有返回值,否则直接在当前返回)
3.@app.after_request:请求 经过视图之后执行;(最下面的先执行)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | #!/usr/bin/env python # -*- coding:utf-8 -*- from flask import Flask, Request, render_template app = Flask(__name__, template_folder = 'templates' ) app.debug = True @app .before_first_request #第1个请求到来执行 def before_first_request1(): print ( 'before_first_request1' ) @app .before_request #中间件2 def before_request1(): Request.nnn = 123 print ( 'before_request1' ) #不能有返回值,一旦有返回值在当前返回 @app .before_request def before_request2(): print ( 'before_request2' ) @app .errorhandler( 404 ) def page_not_found(error): return 'This page does not exist' , 404 @app .route( '/' ) def hello_world(): return "Hello World" @app .after_request #中间件 执行视图之后 def after_request1(response): print ( 'after_request1' , response) return response @app .after_request #中间件 执行视图之后 先执行 after_request2 def after_request2(response): print ( 'after_request2' , response) return response <br><br> if __name__ = = '__main__' : app.run() |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具