浅谈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字符串对象的实现
Dec 24 Python
python3使用urllib模块制作网络爬虫
Apr 08 Python
python中zip()方法应用实例分析
Apr 16 Python
Python选课系统开发程序
Sep 02 Python
Python实现简单过滤文本段的方法
May 24 Python
Python cookbook(数据结构与算法)从字典中提取子集的方法示例
Mar 22 Python
python八皇后问题的解决方法
Sep 27 Python
python利用re,bs4,requests模块获取股票数据
Jul 29 Python
Python操作Mongodb数据库的方法小结
Sep 10 Python
Python 如何优雅的将数字转化为时间格式的方法
Sep 26 Python
Python爬虫之Spider类用法简单介绍
Aug 04 Python
Pyhton爬虫知识之正则表达式详解
Apr 01 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
了解咖啡雨林联盟认证 什么是雨林认证 雨林认证是什么意思
2021/03/05 新手入门
php 利用socket发送GET,POST请求的实例代码
2020/07/04 PHP
PHP变量的作用范围实例讲解
2020/12/22 PHP
js 表格隔行颜色
2009/12/02 Javascript
javascript ie6兼容position:fixed实现思路
2013/04/01 Javascript
jquery+json实现数据列表分页示例代码
2013/11/15 Javascript
jquery 实现返回顶部功能
2014/11/17 Javascript
node.js中的buffer.write方法使用说明
2014/12/10 Javascript
jQuery Dialog对话框事件用法实例分析
2016/05/10 Javascript
微信jssdk用法汇总
2016/07/16 Javascript
详解babel升级到7.X采坑总结
2019/05/12 Javascript
python清除字符串里非数字字符的方法
2015/07/02 Python
Django 导出 Excel 代码的实例详解
2017/08/11 Python
对pandas进行数据预处理的实例讲解
2018/04/20 Python
Pycharm 实现下一个文件引用另外一个文件的方法
2019/01/17 Python
python3对接mysql数据库实例详解
2019/04/30 Python
Flask框架单例模式实现方法详解
2019/07/31 Python
Python学习笔记之字符串和字符串方法实例详解
2019/08/22 Python
在OpenCV里使用Camshift算法的实现
2019/11/22 Python
浅谈python累加求和+奇偶数求和_break_continue
2020/02/25 Python
Python简单实现词云图代码及步骤解析
2020/06/04 Python
python对一个数向上取整的实例方法
2020/06/18 Python
Idea安装python显示无SDK问题解决方案
2020/08/12 Python
python安装第三方库如xlrd的方法
2020/10/31 Python
如何一键升级Python所有包
2020/11/05 Python
使用Python实现音频双通道分离
2020/12/25 Python
H5离线存储Manifest原理及使用
2020/04/28 HTML / CSS
YOOX美国官方网站:全球著名的多品牌时尚网络概念店
2016/09/11 全球购物
美国在线打印网站:Overnight Prints
2018/10/11 全球购物
若通过ObjectOutputStream向一个文件中多次以追加方式写入object,为什么用ObjectInputStream读取这些object时会产生StreamCorruptedException?
2016/10/17 面试题
学生就业推荐信
2013/11/13 职场文书
大学生英语演讲稿
2014/04/24 职场文书
2014年人事工作总结范文
2014/11/19 职场文书
小学教师党员承诺书
2015/04/27 职场文书
Mysql事务索引知识汇总
2022/03/17 MySQL
python manim实现排序算法动画示例
2022/08/14 Python