浅谈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中面向对象编程的相关知识
May 25 Python
Python实现找出数组中第2大数字的方法示例
Mar 26 Python
Python3实现获取图片文字里中文的方法分析
Dec 13 Python
详解python列表生成式和列表生成式器区别
Mar 27 Python
python实现统计文本中单词出现的频率详解
May 20 Python
Python生命游戏实现原理及过程解析(附源代码)
Aug 01 Python
Django中使用CORS实现跨域请求过程解析
Aug 05 Python
Python turtle画图库&&画姓名实例
Jan 19 Python
如何提高python 中for循环的效率
Apr 15 Python
python如何编写win程序
Jun 08 Python
关于Python 解决Python3.9 pandas.read_excel(‘xxx.xlsx‘)报错的问题
Nov 28 Python
python 爬取腾讯视频评论的实现步骤
Feb 18 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具体实现代码
2010/10/12 PHP
php中解析带中文字符的url函数分享
2015/01/20 PHP
PHP识别二维码的方法(php-zbarcode安装与使用)
2016/07/07 PHP
Yii数据模型中rules类验证器用法分析
2016/07/15 PHP
thinkphp5.0自定义验证规则使用方法
2017/11/16 PHP
实例分析10个PHP常见安全问题
2019/07/09 PHP
学习jquery之一
2007/04/27 Javascript
Jquery 学习笔记(一)
2009/10/13 Javascript
DOM Scripting中的图片切换[兼容Firefox]
2010/06/12 Javascript
Javascript 倒计时源代码.(时.分.秒) 详细注释版
2011/05/09 Javascript
js调用activeX获取u盘序列号的代码
2011/11/21 Javascript
Knockout数组(observable)使用详解示例
2013/11/15 Javascript
如何实现chrome浏览器关闭页面时弹出“确定要离开此面吗?”
2015/03/05 Javascript
JS定义网页表单提交(submit)的方法
2015/03/20 Javascript
javascript中的正则表达式使用详解
2015/08/30 Javascript
js仿3366小游戏选字游戏
2016/04/14 Javascript
BootStrap中的table实现数据填充与分页应用小结
2016/05/26 Javascript
Angularjs的Controller间通信机制实例分析
2016/11/07 Javascript
nodejs进阶(6)—连接MySQL数据库示例
2017/01/07 NodeJs
vue自定义filters过滤器
2018/04/26 Javascript
原生JS实现的简单小钟表功能示例
2018/08/30 Javascript
vue 自定义右键样式的实例代码
2019/11/06 Javascript
图解JS原型和原型链实现原理
2020/09/15 Javascript
Python中利用Scipy包的SIFT方法进行图片识别的实例教程
2016/06/03 Python
python实现的MySQL增删改查操作实例小结
2018/12/19 Python
Python numpy中矩阵的基本用法汇总
2019/02/12 Python
从numpy数组中取出满足条件的元素示例
2019/11/26 Python
Python中Pyspider爬虫框架的基本使用详解
2021/01/27 Python
Timberland法国官网:购买靴子、鞋子、衣服、夹克和配饰
2019/11/30 全球购物
面向游戏玩家和书呆子的极客订阅盒:Loot Crate
2020/11/25 全球购物
十岁生日家长答谢词
2014/01/17 职场文书
租车协议书范本
2014/04/22 职场文书
化工专业自荐书
2014/06/16 职场文书
家属联谊会致辞
2015/07/31 职场文书
详解解Django 多对多表关系的三种创建方式
2021/08/23 Python
分享很少见很有用的SQL功能CORRESPONDING
2022/08/05 MySQL