浅谈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的Flask框架中实现简单的登录功能的教程
Apr 20 Python
独特的python循环语句
Nov 20 Python
Python学习_几种存取xls/xlsx文件的方法总结
May 03 Python
解决python nohup linux 后台运行输出的问题
May 11 Python
Python基于百度云文字识别API
Dec 13 Python
python用opencv批量截取图像指定区域的方法
Jan 24 Python
python自定义线程池控制线程数量的示例
Feb 22 Python
Python OpenCV中的resize()函数的使用
Jun 20 Python
Python 实现数据结构-堆栈和队列的操作方法
Jul 17 Python
Django框架中间件定义与使用方法案例分析
Nov 28 Python
PyQt5中QTableWidget如何弹出菜单的示例代码
Feb 23 Python
Python基于codecs模块实现文件读写案例解析
May 11 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计算两个日期相差天数的方法
2015/03/14 PHP
在PHP中输出JS语句以及乱码问题的解决方案
2019/02/13 PHP
Yii 实现数据加密和解密
2021/03/09 PHP
用js生产批量批处理执行命令
2008/07/28 Javascript
Javascript isArray 数组类型检测函数
2009/10/08 Javascript
js 创建快捷方式的代码(fso)
2010/11/19 Javascript
16个最流行的JavaScript框架[推荐]
2011/05/29 Javascript
JavaScript闭包 懂不懂由你反正我是懂了
2011/10/21 Javascript
简介JavaScript中strike()方法的使用
2015/06/08 Javascript
jQuery实现可关闭固定于底(顶)部的工具条菜单效果
2015/11/06 Javascript
JavaScript中rem布局在react中的应用
2015/12/09 Javascript
基于Bootstrap实现的下拉菜单手机端不能选择菜单项的原因附解决办法
2016/07/22 Javascript
JavaScript比较当前时间是否在指定时间段内的方法
2016/08/02 Javascript
Vue.js每天必学之数据双向绑定
2016/09/05 Javascript
AngularJS实现在ng-Options加上index的解决方法
2016/11/03 Javascript
Es6 写的文件import 起来解决方案详解
2016/12/13 Javascript
详解handlebars+require基本使用方法
2016/12/21 Javascript
JS实现HTML标签转义及反转义
2020/04/14 Javascript
Angularjs为ng-click事件传递参数
2017/06/15 Javascript
利用vue-i18n实现多语言切换效果的方法
2019/06/19 Javascript
使用react context 实现vue插槽slot功能
2019/07/18 Javascript
vue实现列表拖拽排序的功能
2020/11/02 Javascript
[01:42]TI4西雅图DOTA2前线报道 第一顿早饭哦
2014/07/08 DOTA
[09:31]2016国际邀请赛中国区预选赛Yao赛后采访 答题送礼
2016/06/27 DOTA
python中的内置函数getattr()介绍及示例
2014/07/20 Python
wxPython窗口中文乱码解决方法
2014/10/11 Python
Python json模块dumps、loads操作示例
2018/09/06 Python
opencv实现图片模糊和锐化操作
2018/11/19 Python
python小程序实现刷票功能详解
2019/07/17 Python
Python Django 简单分页的实现代码解析
2019/08/21 Python
好莱坞百老汇御用王牌美妆:Koh Gen Do 江原道
2018/04/03 全球购物
FC-Moto美国:欧洲最大的摩托车服装和头盔商店之一
2019/08/24 全球购物
主持人演讲稿范文
2013/12/28 职场文书
乔迁之喜答谢词
2015/01/05 职场文书
四年级数学教学反思
2016/02/16 职场文书
jupyter notebook保存文件默认路径更改方法汇总(亲测可以)
2021/06/09 Python