Flask中特殊装饰器的使用

 更新时间:2023年02月24日 15:11:52   作者:双天至尊-王天龙  
本文主要介绍了Flask中特殊装饰器的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

(1)@app.before_request

请求到达视图函数之前,进行自定义操作,类似django中间件中的process_request,在app中使用则为全局,在蓝图中使用则针对当前蓝图

注意正常状态下return值必须为None

(2)@app.after_request

响应返回到达客户端之前,进行自定义操作,类似jango中间件中的process_response,在app中使用则为全局,在蓝图中使用则针对当前蓝图

注意正常状态下视图函数必须定义一个形参接收response对象,并通过return response返回

(3)@app.errorhandler()

错误状态码捕获执行函数,装饰器参数务必是4xx或者5xx的int型错误状态码

(4) @app.template_global() :定义装饰全局模板可用的函数,直接可在模板中进行渲染使用

@app.template_filter(): 定义装饰全局模板可用的过滤器函数,类似django中的自定义过滤器,直接可在模板中使用

这两个特殊装饰器主要用在模板渲染!!!

import apps
from flask import request, session, redirect
 
app = apps.create_app() 
 
@app.before_request
def before1():
    print("before1", request)
  
@app.before_request
def before2():
    print("before2")
    if request.path == "/":
        return None
    else:
        #这里抛出了一个异常,会被@app.errorhandler(Exception)
        # 捕获到。
        raise Exception("hahaha") 
 
@app.before_request
def before3():
    print("before3")
  
@app.after_request
def after1(res):
    print("after1")
    return res 
 
@app.after_request
def after2(res):
    print("after2")
    return res 
 
@app.after_request
def after3(res):
    print("after3")
    return res
  
# 处理异常,接受参数,可以重定向到指定页面
@app.errorhandler(Exception)
def error(e):
    print("error")
    return redirect("/") 
 
@app.route("/login")
def login():
    print("login")
    return "login"
 
@app.route('/')
def hello_world():  # put application's code here
    return 'Hello World!'
 
if __name__ == '__main__':
    app.run()

到此这篇关于Flask中特殊装饰器的使用的文章就介绍到这了,更多相关Flask 特殊装饰器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:

相关文章

  • Python容器类型公共方法总结

    Python容器类型公共方法总结

    这篇文章主要总结了Python容器类型公共方法,帮助大家更好的理解和学习python,感兴趣的朋友可以了解下
    2020-08-08
  • Python实现调度算法代码详解

    Python实现调度算法代码详解

    这篇文章主要介绍了Python实现调度场算法代码详解,具有一定参考价值,需要的朋友可以了解下。
    2017-12-12
  • 利用Python制作本地Excel的查询与生成的程序问题

    利用Python制作本地Excel的查询与生成的程序问题

    最近遇到这样一个项目需求制作一个程序有一个简单的查询入口实现Excel的查询与生成,今天教大家利用Python制作本地Excel的查询与生成的程序,感兴趣的朋友跟随小编一起看看吧
    2022-06-06
  • Python入门教程(三十五)Python中文件的打开

    Python入门教程(三十五)Python中文件的打开

    这篇文章主要介绍了Python入门教程(三十五)Python中文件的打开,在Python中文件的读取主要是用open()函数,那么open()函数有哪些方法呢,今天我们就来看一看,需要的朋友可以参考下
    2023-05-05
  • python把一个字符串切开的实例方法

    python把一个字符串切开的实例方法

    在本篇文章里小编给大家整理的是一篇关于python把一个字符串切开的实例方法,需要的朋友们可以学习参考下。
    2020-09-09
  • Python中optparser库用法实例详解

    Python中optparser库用法实例详解

    这篇文章主要介绍了Python中optparser库用法实例详解,介绍了optparser的引入,初始化等相关内容,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • 纯用NumPy实现神经网络的示例代码

    纯用NumPy实现神经网络的示例代码

    这篇文章主要介绍了纯用NumPy实现神经网络的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-10-10
  • Python中字典的setdefault()方法教程

    Python中字典的setdefault()方法教程

    在学习python字典操作方法时,感觉setdefault()方法,比字典的其它基本操作方法更难理解的同学比较多,所以想着总结以下,下面这篇文章主要给大家介绍了Python中字典的setdefault()方法,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-02-02
  • python 读写文件包含多种编码格式的解决方式

    python 读写文件包含多种编码格式的解决方式

    今天小编就为大家分享一篇python 读写文件包含多种编码格式的解决方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • python中opencv图像叠加、图像融合、按位操作的具体实现

    python中opencv图像叠加、图像融合、按位操作的具体实现

    opencv图像操作可以更好更快的方便我们处理图片,本文主要介绍了图像叠加、图像融合、按位操作,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07

最新评论