浅谈flask截获所有访问及before/after_request修饰器


Posted in Python onJanuary 18, 2018

本文主要研究的是flask如何截获所有访问,以及before_request、after_request修饰器的相关内容,具体如下。

在学习着用flask开发安卓后天接口时,遇到一个需求,就是想截获所有请求,即在所有请求进入app.route装饰的函数前先被处理一次。

经过在网上查找资料后,知道了@before_request、@after_request这两个方法,示例:

@app.before_request 
def before_request(): 
  ip = request.remote_addr 
  url = request.url 
  print ip, 
  print url

before_request()函数被app.before_request修饰以后,每一次请求到来后,都会先进入函数before_request()中,如上代码,获取请求的ip以及url,并打印出来,执行完毕后请求才会正常进入到app.route修饰的函数中响应,如果有多个函数被app.before_request修饰了,那么这些函数会被依次执行。

app.before_request修饰器在开发中用处非常大,比如判断某个ip是否有恶意访问行为,从而进行拦截等操作。

此外同理,app.after_request修饰器是在用户请求得到函数响应后被执行,不过需要注意的是这个执行是在函数返回数据前被调用,即请求已经被app.route修饰的函数响应过了,已经形成了response,但还未返回给用户的时候,调用的。

总结

以上就是本文关于浅谈flask截获所有访问及before/after_request修饰器的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

Python 相关文章推荐
写了个监控nginx进程的Python脚本
May 10 Python
使用rst2pdf实现将sphinx生成PDF
Jun 07 Python
Python使用openpyxl读写excel文件的方法
Jun 30 Python
Python基于列表list实现的CRUD操作功能示例
Jan 05 Python
python 简单照相机调用系统摄像头实现方法 pygame
Aug 03 Python
详解配置Django的Celery异步之路踩坑
Nov 25 Python
Python中的相关分析correlation analysis的实现
Aug 29 Python
python 怎样将dataframe中的字符串日期转化为日期的方法
Sep 26 Python
如何基于Python创建目录文件夹
Dec 31 Python
TensorFlow内存管理bfc算法实例
Feb 03 Python
Keras 实现加载预训练模型并冻结网络的层
Jun 15 Python
用pushplus+python监控亚马逊到货动态推送微信
Jan 29 Python
flask中主动抛出异常及统一异常处理代码示例
Jan 18 #Python
浅谈Django学习migrate和makemigrations的差别
Jan 18 #Python
Python机器学习logistic回归代码解析
Jan 17 #Python
酷! 程序员用Python带你玩转冲顶大会
Jan 17 #Python
Python建立Map写Excel表实例解析
Jan 17 #Python
Python冲顶大会 快来答题!
Jan 17 #Python
urllib和BeautifulSoup爬取维基百科的词条简单实例
Jan 17 #Python
You might like
PHP 和 XML: 使用expat函数(一)
2006/10/09 PHP
PHP Zip解压 文件在线解压缩的函数代码
2010/05/26 PHP
分享一下贝贝成长进度的php代码
2012/09/14 PHP
PHP数组基本用法与知识点总结
2020/06/02 PHP
论坛里点击别人帖子下面的回复,回复标题变成“回复 24# 的帖子”
2009/06/14 Javascript
script标签的 charset 属性使用说明
2010/12/04 Javascript
jquery实现奇偶行赋值不同css值
2012/02/17 Javascript
jQuery仿Excel表格编辑功能的实现代码
2013/05/01 Javascript
jquery点击页面任何区域实现鼠标焦点十字效果
2013/06/21 Javascript
js获得参数的getParameter使用示例
2014/02/26 Javascript
javascript实现dom动态创建省市纵向列表菜单的方法
2015/05/14 Javascript
基于JavaScript实现通用tab选项卡(通用性强)
2016/01/07 Javascript
AngularJS使用指令增强标准表单元素功能
2016/07/01 Javascript
js获取腾讯视频ID的方法
2016/10/03 Javascript
AngularJS 应用身份认证的技巧总结
2016/11/07 Javascript
ES6新特性之字符串的扩展实例分析
2017/04/01 Javascript
详解webpack+es6+angular1.x项目构建
2017/05/02 Javascript
redux-saga 初识和使用
2018/03/10 Javascript
详解vue axios二次封装
2018/07/22 Javascript
解决vue router组件状态刷新消失的问题
2018/08/01 Javascript
通过JQuery,JQueryUI和Jsplumb实现拖拽模块
2019/06/18 jQuery
详解uniapp的全局变量实现方式
2021/01/11 Javascript
总结用Pdb库调试Python的方式及常用的命令
2016/08/18 Python
Python模拟用户登录验证
2017/09/11 Python
DJANGO-URL反向解析REVERSE实例讲解
2019/10/25 Python
python的range和linspace使用详解
2019/11/27 Python
python多进程并发demo实例解析
2019/12/13 Python
TensorFlow2.X使用图片制作简单的数据集训练模型
2020/04/08 Python
8种常用的Python工具
2020/08/05 Python
巴西葡萄酒销售网站:Wine.com.br
2017/11/07 全球购物
安全资料员岗位职责
2013/12/14 职场文书
领导欢迎词范文
2015/01/26 职场文书
2015年世界水日活动总结
2015/02/09 职场文书
《丑小鸭》教学反思
2016/02/19 职场文书
2019年最新感恩节祝福语(28句)
2019/11/27 职场文书
MySQL创建管理RANGE分区
2022/04/13 MySQL