文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Flask中特殊装饰器的使用

2023-02-24 17:39

关注

(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 特殊装饰器内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯