浅谈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实现忽略大小写对字符串列表排序的方法
Sep 25 Python
pymongo为mongodb数据库添加索引的方法
May 11 Python
python实现简易通讯录修改版
Mar 13 Python
Windows下安装Django框架的方法简明教程
Mar 28 Python
浅析Python数据处理
May 02 Python
python实现自动发送邮件
Jun 20 Python
python opencv实现图像边缘检测
Apr 29 Python
Docker部署Python爬虫项目的方法步骤
Jan 19 Python
tensorflow 限制显存大小的实现
Feb 03 Python
Pytorch使用PIL和Numpy将单张图片转为Pytorch张量方式
May 25 Python
python实现批处理文件
Jul 28 Python
python神经网络 使用Keras构建RNN训练
May 04 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工厂模式的好处
2013/06/18 PHP
php将html转为图片的实现方法
2017/05/19 PHP
PHP实现的基于单向链表解决约瑟夫环问题示例
2017/09/30 PHP
PHP获取日期对应星期、一周日期、星期开始与结束日期的方法
2018/06/22 PHP
让Firefox支持event对象实现代码
2009/11/07 Javascript
javascript instanceof 与typeof使用说明
2010/01/11 Javascript
jQuery学习笔记之jQuery动画效果
2013/09/09 Javascript
JS获取屏幕,浏览器窗口大小,网页高度宽度(实现代码)
2013/12/17 Javascript
jQuery实现跨域
2015/02/03 Javascript
JS获取图片lowsrc属性的方法
2015/04/01 Javascript
jQuery插件EasyUI校验规则 validatebox验证框
2015/11/29 Javascript
原生js页面滚动延迟加载图片
2015/12/20 Javascript
JS弹性运动实现方法分析
2016/12/15 Javascript
vue2.0+koa2+mongodb实现注册登录
2018/04/10 Javascript
webpack4的迁移的使用方法
2018/05/25 Javascript
JS前端知识点 运算符优先级,URL编码与解码,String,Math,arguments操作整理总结
2019/06/27 Javascript
js实现简单的秒表
2020/01/16 Javascript
Vue开发中遇到的跨域问题及解决方法
2020/02/11 Javascript
vue实现移动端H5数字键盘组件使用详解
2020/08/25 Javascript
Python中的生成器和yield详细介绍
2015/01/09 Python
python2.6.6如何升级到python2.7.14
2018/04/08 Python
Python GUI Tkinter简单实现个性签名设计
2018/06/19 Python
Python3 利用requests 库进行post携带账号密码请求数据的方法
2018/10/26 Python
Windows 8.1 64bit下搭建 Scrapy 0.22 环境
2018/11/18 Python
详解Python读取yaml文件多层菜单
2019/03/23 Python
python中pytest收集用例规则与运行指定用例详解
2019/06/27 Python
python动态进度条的实现代码
2019/07/03 Python
django项目用higcharts统计最近七天文章点击量
2019/08/17 Python
python实现超级玛丽游戏
2020/03/18 Python
Python不支持 i ++ 语法的原因解析
2020/07/22 Python
质量承诺书范文
2014/03/27 职场文书
政风行风评议整改方案
2014/09/15 职场文书
2014年行政助理工作总结
2014/11/19 职场文书
2015年学生会部门工作总结
2015/04/21 职场文书
行政诉讼答辩状
2015/05/21 职场文书
民政局2016年“六一”儿童节慰问活动总结
2016/04/06 职场文书