浅谈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 相关文章推荐
paramiko模块安装和使用(远程登录服务器)
Jan 27 Python
Python实现远程调用MetaSploit的方法
Aug 22 Python
python字符串连接方法分析
Apr 12 Python
Phantomjs抓取渲染JS后的网页(Python代码)
May 13 Python
Python实现八皇后问题示例代码
Dec 09 Python
python实现鸢尾花三种聚类算法(K-means,AGNES,DBScan)
Jun 27 Python
python实现对列表中的元素进行倒序打印
Nov 23 Python
python 画函数曲线示例
Dec 04 Python
python读取文件指定行内容实例讲解
Mar 02 Python
基于Python实现下载网易音乐代码实例
Aug 10 Python
Python解析微信dat文件的方法
Nov 30 Python
python实现图片九宫格分割的示例
Apr 25 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
第八节 访问方式 [8]
2006/10/09 PHP
php更改目录及子目录下所有的文件后缀扩展名的代码
2010/10/12 PHP
PHPExcel读取Excel文件的实现代码
2011/12/06 PHP
个人写的PHP验证码生成类分享
2014/08/21 PHP
谈谈你对Zend SAPIs(Zend SAPI Internals)的理解
2015/11/10 PHP
php多进程应用场景实例详解
2019/07/22 PHP
Javascript学习笔记之 函数篇(一) : 函数声明和函数表达式
2014/06/24 Javascript
JS实现超精简响应鼠标显示二级菜单代码
2015/09/12 Javascript
js的各种排序算法实现(总结)
2016/07/23 Javascript
ECMAScript6轮播图实践知识总结
2016/08/17 Javascript
js调用刷新界面的几种方式
2017/05/03 Javascript
vue-cli webpack 开发环境跨域详解
2017/05/18 Javascript
JavaScript实现跟随滚动缓冲运动广告框
2017/07/15 Javascript
Vue CLI3 开启gzip压缩文件的方式
2018/09/30 Javascript
优雅的将ElementUI表格变身成树形表格的方法步骤
2019/04/11 Javascript
vue 实现v-for循环回来的数据动态绑定id
2019/11/07 Javascript
[01:21:36]CHAOS vs Alliacne 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
在Python中使用SimpleParse模块进行解析的教程
2015/04/11 Python
django之静态文件 django 2.0 在网页中显示图片的例子
2019/07/28 Python
Django使用uwsgi部署时的配置以及django日志文件的处理方法
2019/08/30 Python
python下载库的步骤方法
2019/10/12 Python
python+Django+pycharm+mysql 搭建首个web项目详解
2019/11/29 Python
torch 中各种图像格式转换的实现方法
2019/12/26 Python
Selenium python时间控件输入问题解决方案
2020/07/22 Python
深入了解Python 方法之类方法 & 静态方法
2020/08/17 Python
优秀大学生推荐信范文
2013/11/28 职场文书
《吃水不忘挖井人》教学反思
2014/04/15 职场文书
家具公司总经理岗位职责
2014/07/08 职场文书
领导干部作风整顿剖析材料
2014/10/11 职场文书
2014年采购部工作总结
2014/11/20 职场文书
2015少先队大队辅导员工作总结
2015/07/24 职场文书
WordPress多语言翻译插件 - WPML使用教程
2021/04/01 PHP
CSS 还能这样玩?奇思妙想渐变的艺术
2021/04/27 HTML / CSS
react中props 的使用及进行限制的方法
2021/04/28 Javascript
MySQL 8.0 Online DDL快速加列的相关总结
2021/06/02 MySQL
Mysql中有关Datetime和Timestamp的使用总结
2021/12/06 MySQL