Flask - 请求扩展,钩子函数(Django的中间件) --> 请求前,中,后,
例子1. 处理请求之前
@app.before_request
在请求之前,这个被装饰的函数会被执行
用户登录验证代码可以在这里写
@app.before_request
def process_request(*args,**kwargs):
    #print(request.xxx)
    print('请求之前')
    return '拦截'

例子2. @app.before_request, @app.after_request最常用
from flask import Flask,render_template,request,redirect,session,url_for
app = Flask(__name__)
app.debug = True
app.secret_key = 'I am serect_key'
@app.before_request
def process_request1(*args,**kwargs):
    print('process_request1 came in')
    # return '拦截'        #request2不执行,两个response执行
@app.before_request
def process_request2(*args,**kwargs):
    print('process_request2 came in')
@app.after_request
def process_response1(response):
    print('process_response1 gone')
    return response
@app.after_request
def process_response2(response):
    print('process_response2 gone')
    return response
@app.errorhandler(404)
def error_404(arg):
    print('404错误')
    return "404错误了"
@app.before_first_request
def first(*args,**kwargs):
    pass
@app.route('/',methods=['GET'])
def index():
    print('/index函数')
    return "/index函数"
if __name__ == '__main__':
    app.run()


因为错误页面请求到了,所以状态码为200
例子3. @app.before_first_request
@app.before_first_request
def first(*args, **kwargs):
    pass
第一次请求之前,例如进行打开数据库操作
Flask - 请求扩展,钩子函数(Django的中间件) --> 请求前,中,后,的更多相关文章
- csrf 跨站请求伪造相关以及django的中间件
		
django为用户实现防止跨站请求伪造的功能,通过中间件 django.middleware.csrf.CsrfViewMiddleware来完成. 1.django中常用的中间件? - proces ...
 - Flask常用的钩子函数
		
before_first_request:处理第一次请求之前执行.例如以下代码: @app.before_first_request def first_request(): print 'first ...
 - 飘逸的python - 极简的二叉树前中后序通杀函数
		
对于任一结点.能够按某种次序运行三个操作: 訪问结点本身(N) 遍历该结点的左子树(L) 遍历该结点的右子树(R) 用来表示顺序,即,前序NLR/中序LNR/后序LRN. 以下我们用namedtupl ...
 - 第二篇 Flask基础篇之(闪现,蓝图,请求扩展,中间件)
		
本篇主要内容: 闪现 请求扩展 中间件 蓝图 写装饰器,常用 functools模块,帮助设置函数的元信息 import functools def wrapper(func): @functools ...
 - Flask - 请求响应 | session | 闪现 | 请求扩展 | 中间件
		
请求响应 flask的请求信息都在request里 flask的响应方式有四剑客,也可以自定义响应 请求相关信息 # request.method 提交的方法 # request.args get请求 ...
 - Flask入门flask-script 蓝本 钩子函数(三)
		
1 flask-script扩展库 概念: 是一个flask终端运行的解析器 ,因为项目完成以后,代码改动会有风险,所以借助终端完成不同启动项的配置 安装 pip3 install flask-scr ...
 - 21、Flask实战第21天:常用的Flask钩子函数
		
在Flask中钩子函数是使用特定的装饰器装饰的函数.为什么叫钩子函数呢?是因为钩子函数可以在正常执行的代码中,插入一段自己想要执行的代码.那么这种函数就叫做钩子函数. before_first_req ...
 - Django【第12篇】:Django之中间件
		
自定义验证规则以及中间件简单介绍 1.python2和python3中的区别 对于python2内置的字符串类型有str和unicode 比如:"abc"是字符串,u"你 ...
 - session、闪现、请求扩展
		
session 除请求对象之外,还有一个session对象.它允许你在不同请求储存特定用户的信息.它是在Cookies的基础上实现的,并且对,Cookies进行密钥签名要使用会话,你需要设置一个密钥. ...
 
随机推荐
- 关于原生,webapp,hybird(混合)
			
链接:https://www.jianshu.com/p/839748d571b2 链接2:https://www.jianshu.com/p/6d5f32aa5dda
 - dfs(学姐的红包)
			
链接:https://ac.nowcoder.com/acm/contest/3402/I 盼啊,盼啊,伴随着时钟的敲响,我们即将迎来了美好的传统佳节-春节.为了给新年增添浓浓节日气息,师弟师妹 ...
 - JPA中实现双向多对多的关联关系(附代码下载)
			
场景 JPA入门简介与搭建HelloWorld(附代码下载): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103473937 ...
 - 彻底解决Spring mvc中时间的转换和序列化等问题
			
痛点 在使用Spring mvc 进行开发时我们经常遇到前端传来的某种格式的时间字符串无法用java8的新特性java.time包下的具体类型参数来直接接收. 我们使用含有java.time封装类型的 ...
 - JNJP节点指定端口
			
jenkins节点机通过jnjp的方式访问jenkins服务器,端口号默认是随机分配,断开再连接则端口号会变. 由于公司管控较严,服务器开放的端口需要申请,因此不希望是随机分配的,而是可以指定端口. ...
 - 运行时Runtime的API
			
const char * class_getName(Class cls); 返回类的名称. Class class_getSuperclass(Class cls); 返回类的超类. Class c ...
 - Scrapy爬取某装修网站部分装修效果图
			
爬取图片资源 spider文件 from scrapy.linkextractors import LinkExtractor from scrapy.spiders import CrawlSpid ...
 - Euler Sums系列(三)
			
\[\Large\sum_{n=1}^{\infty}\frac{\left(H_{n}^{(2)}\right)^{2}}{n^{2}}=\frac{19}{24}\zeta(6)+\zeta^{2 ...
 - Mac 如何导出ipa文件中Assets.car包中的切图
			
在之前 获取 AppStore 中 应用 的 IPA 包文件(Mac OS 13+)中获取到应用的 IPA 包,可以取出应用的部分图片(如 Logo),如果项目工程中把图片添加到 Assets.xca ...
 - kafka中常用API的简单JAVA代码
			
通过之前<kafka分布式消息队列介绍以及集群安装>的介绍,对kafka有了初步的了解.本文主要讲述java代码中常用的操作. 准备:增加kafka依赖 <dependency> ...