浅谈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中常用的各种数据库操作模块和连接实例
May 29 Python
用Python编写一个简单的Lisp解释器的教程
Apr 03 Python
浅谈python 里面的单下划线与双下划线的区别
Dec 01 Python
python实现画五角星和螺旋线的示例
Jan 20 Python
让你Python到很爽的加速递归函数的装饰器
May 26 Python
python requests使用socks5的例子
Jul 25 Python
python使用pygame实现笑脸乒乓球弹珠球游戏
Nov 25 Python
Python异常继承关系和自定义异常实现代码实例
Feb 20 Python
OpenCV Python实现拼图小游戏
Mar 23 Python
Python无头爬虫下载文件的实现
Apr 02 Python
Pytorch数据拼接与拆分操作实现图解
Apr 30 Python
PyTorch的torch.cat用法
Jun 28 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/21 PHP
php实现改变图片直接打开为下载的方法
2015/04/14 PHP
PHP创建PowerPoint2007文档的方法
2015/12/10 PHP
Yii数据模型中rules类验证器用法分析
2016/07/15 PHP
laravel config文件配置全局变量的例子
2019/10/13 PHP
PHP常用字符串输出方法分析(echo,print,printf及sprintf)
2021/03/09 PHP
统计jQuery中各字符串出现次数的工具
2012/05/03 Javascript
JS中如何判断传过来的JSON数据中是否存在某字段
2014/08/18 Javascript
jquery实现将获取的颜色值转换为十六进制形式的方法
2014/12/20 Javascript
jQuery无刷新切换主题皮肤实例讲解
2015/10/21 Javascript
JS获取屏幕高度的简单实现代码
2016/05/24 Javascript
jQuery实现table中的tr上下移动并保持序号不变的实例代码
2016/07/11 Javascript
详细讲解JavaScript中的this绑定
2016/10/10 Javascript
利用jquery给指定的table动态添加一行、删除一行的方法
2016/10/12 Javascript
js记录点击某个按钮的次数-刷新次数为初始状态的实例
2017/02/15 Javascript
利用vue开发一个所谓的数独方法实例
2017/12/21 Javascript
ES6基础之 Promise 对象用法实例详解
2019/08/22 Javascript
layui radio点击事件实现input显示和隐藏的例子
2019/09/02 Javascript
vue使用原生swiper代码实例
2020/02/05 Javascript
Vue组件模板的几种书写形式(3种)
2020/02/19 Javascript
[00:14]护身甲盾
2019/03/06 DOTA
python encode和decode的妙用
2009/09/02 Python
Django URL传递参数的方法总结
2016/08/28 Python
在python中只选取列表中某一纵列的方法
2018/11/28 Python
对python 自定义协议的方法详解
2019/02/13 Python
python 类的继承 实例方法.静态方法.类方法的代码解析
2019/08/23 Python
HTML5的新特性(1)
2016/03/03 HTML / CSS
MaBelle玛贝尔香港官网:香港钻饰连锁店
2019/09/09 全球购物
输入一行文字,找出其中大写字母、小写字母、空格、数字、及其他字符各有多少
2016/04/15 面试题
给朋友的道歉信
2014/01/09 职场文书
石油工程专业毕业生求职信
2014/04/13 职场文书
党员教师群众路线对照检查材料思想汇报
2014/09/29 职场文书
企业与个人合作经营协议书
2014/11/01 职场文书
2015年国庆晚会主持词
2015/07/01 职场文书
导游词之唐山景点
2019/12/18 职场文书
Python 居然可以在 Excel 中画画你知道吗
2022/02/15 Python