flask中的请求钩子就是域django的中间件类似,作用都是用于在请求前、后、响应前、后进行一些hook操作。

请求钩子装饰器

@app.before_request
# 请求前会调用,一般可以用来做权限校验。 @app.brefore_first_request
# 只在第一次请求的时候调用,可以做一些init初始化的动作。 @app.after_request
# 请求后调用,也就是准备响应给客户端前
# 要求被装饰的函数参数必须要有一个response接收,且函数必须返回response @app.teardown_request
# 执行视图函数后都会调用,无论是否发生异常。
# 被装饰的函数必须要有一个error参数接收异常。

实例:

from flask import Flask

app = Flask(__name__)

"""
flask可以使用请求钩子对请求前、请求后(响应前)等进行hook处理。
""" @app.before_request # 这个和django的中间件的process_request是一样的
def process_request():
# 这里在这里做权限校验
print("请求前....") @app.after_request # 在执行完视图函数后会执行。
**# 必须接收一个response,然后必须返回response**
def after_request(response):
print("响应前。。。")
**return response** @app.teardown_request
def teardown**(error):**
"""
作用:拦截异常,做异常处理。
# error有值就是有异常发生,没有值就是没有异常发生
:param error:
:return:
"""
print("teardown_request") @app.route('/demo1')
def demo1():
print("demo1....")
return "demo1" if __name__ == '__main__':
app.run(debug=True)

使用场景

  • 一般后期会配合g对象使用,进行一些用户登录校验的操作。g对象后面笔记会写。

flask请求钩子(就是django的中间件)的更多相关文章

  1. 02 flask 请求钩子、异常捕获、上下文、Flask-Script 扩展、jinja2 模板引擎、csrf防范

    一 请求勾子 在客户端和服务器交互的过程中,有些准备工作或扫尾工作需要处理,比如: 在请求开始时,建立数据库连接: 在请求开始时,根据需求进行权限校验: 在请求结束时,指定数据的交互格式: 为了让每个 ...

  2. flask请求钩子、HTTP响应、响应报文、重定向、手动返回错误码、修改MIME类型、jsonify()方法

    请求钩子: 当我们需要对请求进行预处理和后处理时,就可以用Flask提供的回调函数(钩子),他们可用来注册在请求处理的不同阶段执行的处理函数.这些请求钩子使用装饰器实现,通过程序实例app调用,以 b ...

  3. Flask - 请求扩展,钩子函数(Django的中间件) --> 请求前,中,后,

    例子1. 处理请求之前 @app.before_request 在请求之前,这个被装饰的函数会被执行 用户登录验证代码可以在这里写 @app.before_request def process_re ...

  4. flask 之 请求钩子

    请求钩子 什么是请求钩子? 在客户端和服务器交互的过程中,有些准备工作或扫尾工作需要统一处理,为了让每个视图函数避免编写重复功能的代码,flask提供了统一的接口可以添加这些处理函数,即请求钩子. f ...

  5. python 全栈开发,Day87(ajax登录示例,CSRF跨站请求伪造,Django的中间件,自定义分页)

    一.ajax登录示例 新建项目login_ajax 修改urls.py,增加路径 from app01 import views urlpatterns = [ path('admin/', admi ...

  6. Flaks框架(Flask请求响应,session,闪现,请求扩展,中间件,蓝图)

    目录 一:Flask请求响应 1.请求相关信息 2.flask新手四件套 3.响应相关信息(响应response增加数据返回) 二:session 1.session与cookie简介 2.在使用se ...

  7. day93:flask:Cookie&Session&请求钩子&捕获错误&上下文&Flask-Script

    目录 1.HTTP的会话控制 2.Cookie 3.Session 4.请求钩子 5.捕获错误 6.上下文:context 7.Flask-Script 1.HTTP的会话控制 1.什么是会话控制? ...

  8. (三)flask中的请求钩子函数

    请求勾子 在客户端和服务器交互的过程中,有些准备工作或扫尾工作需要处理,比如: 在请求开始时,建立数据库连接: 在请求开始时,根据需求进行权限校验: 在请求结束时,指定数据的交互格式: 为了让每个视图 ...

  9. csrf 跨站请求伪造相关以及django的中间件

    django为用户实现防止跨站请求伪造的功能,通过中间件 django.middleware.csrf.CsrfViewMiddleware来完成. 1.django中常用的中间件? - proces ...

  10. flask基础之请求钩子(十二)

    前言 什么是请求钩子?在客户端和服务器交互的过程中,有些准备工作或扫尾工作需要统一处理,为了让每个视图函数避免编写重复功能的代码,flask提供了统一的接口可以添加这些处理函数,即请求钩子. 请求钩子 ...

随机推荐

  1. OpenStack-T版+Ceph

    OpenStack OpenStack 中有哪些组件 keystone:授权 [授权后各个组件才可以进行相应的功能] Keystone 认证所有 OpenStack 服务并对其进行授权.同时,它也是所 ...

  2. 单节点 RAID6 可靠性模型

    介绍 独立磁盘冗余阵列(Redundant Arrays of Independent Disks, RAID)是存储业界为保证数据可用性.可靠性和完整性所采用的重要技术,即使在分布式多副本如此流行和 ...

  3. 《Hadoop3.X大数据开发实战(视频教学版)》新书来啦!

  4. jQuery默认选中下拉框的某个值

    $("#quaterSelect").val("0");//id为quaterSelect的下拉框默认选中value是0的option选项

  5. Solution -「SP 106」BINSTIRL

    Description Link. 求 \(\begin{Bmatrix}n \\ m\end{Bmatrix}\bmod2\) Solution 求 \[\begin{aligned} \begin ...

  6. Centos7安装yarn

    Centos7安装yarn 设置Yarn仓库 curl --silent --location https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc ...

  7. 文心一言 VS 讯飞星火 VS chatgpt (107)-- 算法导论10.1 5题

    五.用go语言,栈插入和删除元素只能在同一端进行,队列的插入操作和删除操作分别在两端进行,与它们不同的,有一种双端队列(deque),其插入和删除操作都可以在两端进行.写出4个时间均为 O(1)的过程 ...

  8. ContextWrapper

    /* * Copyright (C) 2006 The Android Open Source Project * * Licensed under the Apache License, Versi ...

  9. 14.1 Socket 套接字编程入门

    Winsock是Windows操作系统上的套接字API,用于在网络上进行数据通信.套接字通信是一种允许应用程序在计算机网络上进行实时数据交换的技术.通过使用Windows提供的API,应用程序可以创建 ...

  10. 手动添加winform的combobox和listbox名称和值

    先定义一个ListItem类,工程内其他窗体都可以用的.  public class ListItem : Object     {         public string Text { get; ...