浅谈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编程开发之textwrap文本样式处理技巧
Nov 13 Python
Django ORM框架的定时任务如何使用详解
Oct 19 Python
解决csv.writer写入文件有多余的空行问题
Jul 06 Python
python3利用Socket实现通信的方法示例
May 06 Python
Python Django 命名空间模式的实现
Aug 09 Python
redis数据库及与python交互用法简单示例
Nov 01 Python
Pytorch中实现只导入部分模型参数的方式
Jan 02 Python
解决Keras 与 Tensorflow 版本之间的兼容性问题
Feb 07 Python
Tensorflow tf.tile()的用法实例分析
May 22 Python
python 19个值得学习的编程技巧
Aug 15 Python
pycharm 复制代码出现空格的解决方式
Jan 15 Python
Python装饰器的练习题
Nov 23 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中$_FILES的使用以及注意事项
2013/07/05 PHP
PHP同时连接多个mysql数据库示例代码
2014/03/17 PHP
Yii2.0表关联查询实例分析
2016/07/18 PHP
php使用CutyCapt实现网页截图保存的方法
2016/10/03 PHP
PHP读取CSV大文件导入数据库的实例
2017/07/24 PHP
PHP开发的文字水印,缩略图,图片水印实现类与用法示例
2019/04/12 PHP
Google AJAX 搜索 API实现代码
2010/11/17 Javascript
jQuery实现类似标签风格的导航菜单效果代码
2015/08/25 Javascript
简单实现js选项卡切换效果
2016/02/03 Javascript
jQuery调用WebMethod(PageMethod) NET2.0的方法
2016/04/15 Javascript
实例讲解JavaScript中call、apply、bind方法的异同
2016/09/13 Javascript
jQuery输入框密码的显示隐藏【代码分享】
2017/04/29 jQuery
利用ES6实现单例模式及其应用详解
2017/12/09 Javascript
详解解决使用axios发送json后台接收不到的问题
2018/06/27 Javascript
浅谈VUE-CLI脚手架热更新太慢的原因和解决方法
2018/09/28 Javascript
uni-app微信小程序登录并使用vuex存储登录状态的思路详解
2019/11/04 Javascript
微信小程序文章详情功能完整实例
2020/06/03 Javascript
让 python 命令行也可以自动补全
2014/11/30 Python
详解Python中的条件判断语句
2015/05/14 Python
python中set常用操作汇总
2016/06/30 Python
基于Python代码编辑器的选用(详解)
2017/09/13 Python
Python实现基于二叉树存储结构的堆排序算法示例
2017/12/08 Python
对Python信号处理模块signal详解
2019/01/09 Python
python批量爬取下载抖音视频
2019/06/17 Python
Django多层嵌套ManyToMany字段ORM操作详解
2020/05/19 Python
基于django micro搭建网站实现加水印功能
2020/05/22 Python
使用HTML5做个画图板的方法介绍
2013/05/03 HTML / CSS
中专三年学习的个人自我评价
2013/12/12 职场文书
电子装配专业毕业生求职信
2014/04/23 职场文书
和谐社区口号
2014/06/19 职场文书
公司员工安全协议书
2014/11/21 职场文书
三孔导游词
2015/02/05 职场文书
2015年审计人员工作总结
2015/05/26 职场文书
大学生村官入党自传
2015/06/26 职场文书
变长双向rnn的正确使用姿势教学
2021/05/31 Python
idea 在springboot中使用lombok插件的方法
2021/08/02 Java/Android