浅谈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 14 Python
pygame游戏之旅 载入小车图片、更新窗口
Nov 20 Python
Python使用post及get方式提交数据的实例
Jan 24 Python
Python实现简单查找最长子串功能示例
Feb 26 Python
Python3.5多进程原理与用法实例分析
Apr 05 Python
对python3中的RE(正则表达式)-详细总结
Jul 23 Python
Python如何调用JS文件中的函数
Aug 16 Python
在Python中使用turtle绘制多个同心圆示例
Nov 23 Python
Python实现动态给类和对象添加属性和方法操作示例
Feb 29 Python
PyInstaller将Python文件打包为exe后如何反编译(破解源码)以及防止反编译
Apr 15 Python
浅谈Python 函数式编程
Jun 20 Python
Django中session进行权限管理的使用
Jul 09 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/01/18 PHP
一致性哈希算法以及其PHP实现详细解析
2013/08/24 PHP
以实例全面讲解PHP中多进程编程的相关函数的使用
2015/08/18 PHP
php制作简单模版引擎
2016/04/07 PHP
PHP实现链式操作的三种方法详解
2017/11/16 PHP
通过下拉框的值来确定输入框是否可以为空的代码
2011/10/18 Javascript
jquery实现弹出层完美居中效果
2014/03/03 Javascript
JS实现可点击展开与关闭的左侧广告代码
2015/09/02 Javascript
表单中单选框添加选项和移除选项
2016/07/04 Javascript
jQuery实现点击任意位置弹出层外关闭弹出层效果
2016/10/19 Javascript
解析jQueryEasyUI的使用
2016/11/22 Javascript
原生JS实现简单放大镜效果
2017/02/08 Javascript
BootStrap实现鼠标悬停下拉列表功能
2017/02/17 Javascript
jQuery事件与动画基础详解
2017/02/23 Javascript
IntersectionObserver实现图片懒加载的示例
2017/09/29 Javascript
JavaScript门道之标准库
2018/05/26 Javascript
vue实现自定义多选与单选的答题功能
2018/07/05 Javascript
微信小程序如何获取手机验证码
2018/11/04 Javascript
vue项目打包之后背景样式丢失的解决方案
2019/01/17 Javascript
JS实现将对象转化为数组的方法分析
2019/01/21 Javascript
详解javascript对数组和json数组的操作
2019/04/15 Javascript
taro小程序添加骨架屏的实现代码
2019/11/15 Javascript
Python简单实现两个任意字符串乘积的方法示例
2018/04/12 Python
python实现简单的tcp 文件下载
2020/09/16 Python
python实现发送带附件的邮件代码分享
2020/09/22 Python
python爬虫如何解决图片验证码
2021/02/14 Python
有机童装:Toby Tiger
2018/05/23 全球购物
Java语言程序设计测试题选择题部分
2014/04/03 面试题
中英文自我评价常用句型
2013/12/19 职场文书
倡议书格式
2014/08/30 职场文书
2014年教师节讲话稿5篇
2014/09/10 职场文书
咖啡店创业计划书范文
2014/09/15 职场文书
2014年民主评议党员工作总结
2014/12/02 职场文书
2015年乡镇妇联工作总结
2015/05/19 职场文书
2015年学校少先队工作总结
2015/07/20 职场文书
基于Python实现股票收益率分析
2022/04/02 Python