Flask之请求钩子

算法幻影
• 阅读 4509

什么是请求钩子?说白了,就是在执行视图函数前后你可以进行一些处理,Flask使用装饰器为我们提供了注册通用函数的功能。

  1. before_first_request:在处理第一个请求前执行
  2. before_request:在每次请求前执行
  3. after_request:每次请求之后调用,前提是没有未处理的异常抛出
  4. teardown_request:每次请求之后调用,即使有未处理的异常抛出
from flask import Flask
app = Flask(__name__)

@app.before_first_request
def before_first_request():
    print('before_first_request')


@app.before_request
def before_request():
    print('before_request')


@app.after_request
def after_request(resp):
    print('after_request')
    return resp


@app.teardown_request
def teardown_request(e):
    print('teardown_request')


@app.route("/")
def view_fn():
    return "view_fn"
    
if __name__ == "__main__":
    app.run()

第一次请求:

页面输出:view_fn
控制台输出: before_first_request
            before_request
            after_request
            teardown_request

第二次请求:

页面输出:view_fn
控制台输出: before_request
            after_request
            teardown_request
点赞
收藏
评论区
推荐文章
Stella981 Stella981
4年前
Android Hook技术
1\.什么是HookHook英文翻译过来就是「钩子」的意思,那我们在什么时候使用这个「钩子」呢?在Android操作系统中系统维护着自己的一套事件分发机制。应用程序,包括应用触发事件和后台逻辑处理,也是根据事件流程一步步地向下执行。而「钩子」的意思,就是在事件传送到终点前截获并监控事件的传输,像个钩子钩上事件一样,并且能够在钩上事件时
Stella981 Stella981
4年前
Django 之 cookie和session
一、Cookie1、Cookie的由来因为HTTP协议是无状态的,无状态的意思就是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,也不会受前后请求响应情况直接影响。简而言之,对服务器来说,每一次请求都是全新的。状态可以理解为客户端和服务器在某次会话中产生的数据,那无状态就是这些数据不
Stella981 Stella981
4年前
Flask框架
FLask框架的简单介绍Flask是一个基于Python开发并且依赖jinja2模板和WerkzeugWSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于接收http请求并对请求进行预处理,然后触发Flask框架,开发人员基于Flask框架提供的功能对请求进行相应的处理,并返回给用户,如果要返回给用
Stella981 Stella981
4年前
Python全栈快餐教程(1)
Python全栈快餐教程(1)用Flask处理HTTP请求初识FlaskFlask是最流行的Pythonweb框架之一。我们来写个最小的web应用,只有一个路由先跑进来玩玩吧。fromflaskimportFlask
Stella981 Stella981
4年前
Flask(中间件与全局变量 九)
中间件middlewarerequest当Flask应用处理请求时,它会根据从WSGI服务器收到的环境创建一个Request对象.因为工作者(取决于服务器的线程,进程或者协程)一次只能处理一个请求,所以在该请求期间请求数据可被认为是该工作者的全部数据。Flask对此的术语为本地请求请
Stella981 Stella981
4年前
Django中间件及自定义中间件
\TOC\Django中间件\\中间件介绍:\\中间件是一个用来处理Django的请求和响应的框架级别的钩子。它是一个轻量、低级别的插件系统,用于在全局范围内改变Django的输入和输出。每个中间件都负责做一些特定的功能。说的直白点中间件就是帮助我们在视图函数执行之前和执行之后都可以做一些额外的操作,它本质上是一个
Stella981 Stella981
4年前
Flask框架总结
Flask介绍:Flask是一个基于Python开发并且依赖jinja2模板和WerkzeugWSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于接收http请求并对请求进行预处理,然后触发Flask框架,开发人员基于Flask框架提供的功能对请求进行相应的处理,并返回给用户,如果要返回给用户复杂的内容时,需要借助j
Stella981 Stella981
4年前
Python进阶笔记(2)
'''装饰器装饰器(Decorators)是Python的一个重要部分。简单地说:他们是修改其他函数的功能的函数。他们有助于让我们的代码更简短。如果已经接触过FLASK的,想想路由功能。如果没有接触过FLASK的,建议学习下。''''''各种推导式(compre
Stella981 Stella981
4年前
SpringBoot2 全局异常处理
参考这篇文章里面的几种异常形式:全局异常处理是个比较重要的功能,一般在项目里都会用到。 大概把一次请求分成三个阶段,来分别进行全局的异常处理。 一:在进入Controller之前,譬如请求一个不存在的地址,404错误。 二:在执行@RequestMapping时,进入逻辑处理阶段前。譬如传的参数类型错误。 
Easter79 Easter79
4年前
SpringBoot2 全局异常处理
参考这篇文章里面的几种异常形式:全局异常处理是个比较重要的功能,一般在项目里都会用到。 大概把一次请求分成三个阶段,来分别进行全局的异常处理。 一:在进入Controller之前,譬如请求一个不存在的地址,404错误。 二:在执行@RequestMapping时,进入逻辑处理阶段前。譬如传的参数类型错误。 
Stella981 Stella981
4年前
Django【十二】中间价
一前戏  我们在前面的课程中已经学会了给视图函数加装饰器来判断是用户是否登录,把没有登录的用户请求跳转到登录页面。我们通过给几个特定视图函数加装饰器实现了这个需求。但是以后添加的视图函数可能也需要加上装饰器,这样是不是稍微有点繁琐。  学完今天的内容之后呢,我们就可以用更适宜的方式来实现类似给所有请求都做相同操作的功能了二中间
算法幻影
算法幻影
Lv1
其实一个人挺好的没有顾虑没有牵绊无非是孤单了一点
文章
5
粉丝
0
获赞
0