浅谈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 相关文章推荐
Python金融数据可视化汇总
Nov 17 Python
python简单图片操作:打开\显示\保存图像方法介绍
Nov 23 Python
Python简单生成随机姓名的方法示例
Dec 27 Python
Python实现的爬取网易动态评论操作示例
Jun 06 Python
python pandas 对series和dataframe的重置索引reindex方法
Jun 07 Python
Python3解释器知识点总结
Feb 19 Python
Django单元测试工具test client使用详解
Aug 02 Python
Django使用 Bootstrap 样式修改书籍列表过程解析
Aug 09 Python
python代码实现TSNE降维数据可视化教程
Feb 28 Python
jupyter notebook实现显示行号
Apr 13 Python
python报错TypeError: ‘NoneType‘ object is not subscriptable的解决方法
Nov 05 Python
Django实现drf搜索过滤和排序过滤
Jun 21 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
星际中一些鲜为人知的详细资料
2020/03/04 星际争霸
php递归删除指定文件夹的方法小结
2015/04/20 PHP
Zend Framework动作助手Redirector用法实例详解
2016/03/05 PHP
浅谈socket同步和异步、阻塞和非阻塞、I/O模型
2016/12/15 PHP
Yii框架Session与Cookie使用方法示例
2019/10/14 PHP
js图片轮播效果实现代码
2020/04/18 Javascript
jquery中实现时间戳与日期相互转换
2016/04/12 Javascript
全面理解JavaScript中的闭包
2016/05/12 Javascript
easyui datagrid 大数据加载效率慢,优化解决方法(推荐)
2016/11/09 Javascript
基于Node的React图片上传组件实现实例代码
2017/05/10 Javascript
Angular排序实例详解
2017/06/28 Javascript
微信小程序实现倒计时调用相机自动拍照功能
2018/06/10 Javascript
jQuery滑动效果实现方法分析
2018/09/05 jQuery
Node.js console控制台简单用法分析
2019/01/04 Javascript
微信小程序之数据绑定原理解析
2019/08/14 Javascript
ES6中Promise的使用方法实例总结
2020/02/18 Javascript
[01:23:35]Ti4主赛事胜者组 DK vs EG 1
2014/07/19 DOTA
[01:10]为家乡而战!完美世界城市挑战赛全国总决赛花絮
2019/07/25 DOTA
Python pickle类库介绍(对象序列化和反序列化)
2014/11/21 Python
Tensorflow使用tfrecord输入数据格式
2018/06/19 Python
Python 经典面试题 21 道【不可错过】
2018/09/21 Python
Python模拟浏览器上传文件脚本的方法(Multipart/form-data格式)
2018/10/22 Python
Python Excel处理库openpyxl使用详解
2019/05/09 Python
python 批量修改 labelImg 生成的xml文件的方法
2019/09/09 Python
如何基于python生成list的所有的子集
2019/11/11 Python
Python类的绑定方法和非绑定方法实例解析
2020/03/04 Python
学python最电脑配置有要求么
2020/07/05 Python
iPad和Surface Pro蓝牙键盘:Brydge
2018/11/10 全球购物
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?用contains来区分是否有重复的对象。还是都不用
2013/07/30 面试题
酒店副总岗位职责
2013/12/24 职场文书
2014优秀党员事迹材料
2014/08/14 职场文书
饭店服务员岗位职责
2015/02/09 职场文书
毕业典礼主持词
2015/06/29 职场文书
分析Netty直接内存原理及应用
2021/06/14 Java/Android
mysql分组后合并显示一个字段的多条数据方式
2022/01/22 MySQL
Python实现数据的序列化操作详解
2022/07/07 Python