Flask笔记:hook钩子函数

钩子函数,即hook函数,定义钩子函数时使用对应的装饰器即可。钩子函数的作用可以理解为在正常代码的某个特定节点插入定义好的钩子函数。

常用的钩子函数:

before_first_request:在项目部署好后,服务器处理第一次请求之前执行。

before_request:在每次请求之前执行,即在请求到达服务器后,执行具体的视图函数之前执行。

teardown_appcontext:在每次请求之后执行(无论是否发生了异常)。

template_filter:自定义在jinja2模板中的过滤器,返回处理后的值到模板中,可以参考jinja2中过滤器的使用。

context_processor:上下文处理器,返回一个字典,字典的项在所有的HTML模板中都可以直接使用,使用的时候引用对应的key即可。这个功能类似于“flask.g”对象,不同的之处在于g对象用于py代码中,而此钩子函数则用于HTML模板中。

errorhandler:错误处理,请求发生错误后,会去执行此装饰器定义的钩子函数。需要注意的是:1、使用时需要给装饰器中传入对应的状态码;2、定义此钩子函数时必须有一个error参数;3、此钩子函数应该返回对应的状态码,如果不返回对应的状态码的话,浏览器会认为这是正常返回的页面,并没有发生错误。必要时可以使用“from flask import abort”手动抛出错误,如abort(404)则是抛出一个404错误。

 

errorhandler钩子函数简单示例:

复制代码
# 给装饰器传入对应的状态码
# 发生404错误时,会执行此函数,并将此函数的返回结果返回到浏览器
@app.errorhandler(404)
def page_not_found(error):
    """
    定义此钩子函数时必须有一个error参数,无论函数中是否用得到
    """

    # 此钩子函数应该返回对应的状态码,告诉浏览器发生什么错误,而不是正常返回的结果
    return '访问的页面不存在!', 404
复制代码

 

posted @   山上下了雪-bky  阅读(450)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示