浅谈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 相关文章推荐
python3.4用函数操作mysql5.7数据库
Jun 23 Python
python实现人脸识别代码
Nov 08 Python
Python中property属性实例解析
Feb 10 Python
Python第三方Window模块文件的几种安装方法
Nov 22 Python
Python3删除排序数组中重复项的方法分析
Jan 31 Python
Django中celery执行任务结果的保存方法
Jul 12 Python
python matplotlib库绘制散点图例题解析
Aug 10 Python
Pytest参数化parametrize使用代码实例
Feb 22 Python
Python GUI库PyQt5样式QSS子控件介绍
Feb 25 Python
5行Python代码实现图像分割的步骤详解
May 25 Python
python程序的组织结构详解
Dec 06 Python
Python OpenCV超详细讲解调整大小与图像操作的实现
Apr 02 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 组件化编程技巧
2009/06/06 PHP
php获取mysql数据库中的所有表名的代码
2011/04/23 PHP
PHP递归返回值时出现的问题解决办法
2013/02/19 PHP
php中将html中的br换行符转换为文本输入中的换行符
2013/03/26 PHP
php微信公众账号开发之前五个坑(一)
2016/09/18 PHP
PHP简单数据库操作类实例【支持增删改查及链式操作】
2016/10/10 PHP
PHP5.6读写excel表格文件操作示例
2019/02/26 PHP
dojo 之基础篇(三)之向服务器发送数据
2007/03/24 Javascript
js小技巧--自动隐藏红叉叉
2007/08/13 Javascript
javascript 对象比较实现代码
2009/04/27 Javascript
调试Node.JS的辅助工具(NodeWatcher)
2012/01/04 Javascript
JS获得URL超链接的参数值实例代码
2013/06/21 Javascript
关于Javascript与iframe的那些事儿
2013/07/04 Javascript
AngularJS 入门教程之HTML DOM实例详解
2016/07/28 Javascript
NW.js 简介与使用方法
2018/02/01 Javascript
详解node字体压缩插件font-spider的用法
2018/09/28 Javascript
jquery无缝图片轮播组件封装
2020/11/25 jQuery
mpvue开发音频类小程序踩坑和建议详解
2019/03/12 Javascript
JavaScript 扩展运算符用法实例小结【基于ES6】
2019/06/17 Javascript
vue-router 路由传参用法实例分析
2020/03/06 Javascript
JavaScript十大取整方法实例教程
2020/12/03 Javascript
全面解析js中的原型,原型对象,原型链
2021/01/25 Javascript
[02:22:36]《加油!DOTA》总决赛
2014/09/19 DOTA
Python基于DES算法加密解密实例
2015/06/03 Python
在阿里云服务器上配置CentOS+Nginx+Python+Flask环境
2016/06/18 Python
Python设计模式之组合模式原理与用法实例分析
2019/01/11 Python
python zip()函数使用方法解析
2019/10/31 Python
Flask缓存静态文件的具体方法
2020/08/02 Python
Python页面加载的等待方式总结
2021/02/28 Python
HTML5页面嵌入小程序没有返回按钮及返回页面空白的问题
2020/05/28 HTML / CSS
财会专业毕业生自荐信
2014/07/09 职场文书
商务经理岗位职责
2014/08/03 职场文书
2014年新教师工作总结
2014/11/08 职场文书
学校世界艾滋病日宣传活动总结
2015/05/05 职场文书
关于flex 上下文中自动 margin的问题(完整例子)
2021/05/20 HTML / CSS
Java Lambda表达式常用的函数式接口
2022/04/07 Java/Android