浅谈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实现对excel文件列表值进行统计的方法
Jul 25 Python
Python selenium 三种等待方式详解(必会)
Sep 15 Python
利用Python读取txt文档的方法讲解
Jun 23 Python
pandas 选择某几列的方法
Jul 03 Python
对numpy中的where方法嵌套使用详解
Oct 31 Python
python实现点击按钮修改数据的方法
Jul 17 Python
对django views中 request, response的常用操作详解
Jul 17 Python
pycharm配置当鼠标悬停时快速提示方法参数
Jul 31 Python
Flask框架学习笔记之路由和反向路由详解【图文与实例】
Aug 12 Python
python实现生成Word、docx文件的方法分析
Aug 30 Python
浅谈matplotlib中FigureCanvasXAgg的用法
Jun 16 Python
使用Keras建立模型并训练等一系列操作方式
Jul 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
yii实现创建验证码实例解析
2014/07/31 PHP
php判断表是否存在的方法
2015/06/18 PHP
PHP批量生成图片缩略图的方法
2015/06/18 PHP
详解WordPress中提醒安装插件以及隐藏插件的功能实现
2015/12/25 PHP
正负小数点后两位浮点数实现原理及代码
2013/09/06 Javascript
Javascript URI 解析介绍
2015/03/15 Javascript
jquery控制表单输入框显示默认值的方法
2015/05/22 Javascript
jQuery+HTML5实现图片上传前预览效果
2015/08/20 Javascript
NodeJs的fs读写删除移动监听
2017/04/28 NodeJs
Angular directive递归实现目录树结构代码实例
2017/05/05 Javascript
解决微信二次分享不显示摘要和图片的问题
2017/08/18 Javascript
Vue中建立全局引用或者全局命令的方法
2017/08/21 Javascript
Node.js创建Web、TCP服务器
2017/12/05 Javascript
JS removeAttribute()方法实现删除元素的某个属性
2021/01/11 Javascript
js实现简单商品筛选功能
2021/02/02 Javascript
[45:50]完美世界DOTA2联赛PWL S3 CPG vs Forest 第二场 12.16
2020/12/17 DOTA
Python星号*与**用法分析
2018/02/02 Python
pandas.DataFrame 根据条件新建列并赋值的方法
2018/04/08 Python
用Python将mysql数据导出成json的方法
2018/08/21 Python
使用python对文件中的数值进行累加的实例
2018/11/28 Python
Python模块、包(Package)概念与用法分析
2019/05/31 Python
Python爬虫动态ip代理防止被封的方法
2019/07/07 Python
Django 静态文件配置过程详解
2019/07/23 Python
Python中的list与tuple集合区别解析
2019/10/12 Python
使用Python给头像加上圣诞帽或圣诞老人小图标附源码
2019/12/25 Python
浅谈pytorch、cuda、python的版本对齐问题
2020/01/15 Python
如何在Django中使用聚合的实现示例
2020/03/23 Python
Pytho爬虫中Requests设置请求头Headers的方法
2020/09/22 Python
用HTML5的canvas实现一个炫酷时钟效果
2016/05/20 HTML / CSS
Java里面有没有全局变量?为什么?
2015/02/06 面试题
如果让你测试一台高速激光打印机,你都会进行哪些测试
2012/12/04 面试题
外贸公司实习自我鉴定
2013/09/24 职场文书
2015年度公共机构节能工作总结
2015/05/26 职场文书
妈妈再爱我一次观后感
2015/06/08 职场文书
营销策划分析:怎么策划才能更好销量产品?
2019/09/04 职场文书
jquery插件实现代码雨特效
2021/04/24 jQuery