zoukankan      html  css  js  c++  java
  • flask截获请求访问之before_request修饰器

    flask截获所有请求访问。

    即在所有请求进入app.route装饰的函数前先被处理一次。

    from flask import Flask, jsonify
    
    app = Flask(__name__)
    
    
    @app.before_request 
    def before_request(): 
        ip = request.remote_addr  # 客户端IP
        url = request.url 
        print(ip)
        print(url)
    
    
    @app.route('/api/test', methods=['POST'])
    def test():
        return jsonify({'a': 1, 'b': 2})
    
    
    if __name__ == "__main__":
        app.run(debug=True, host='0.0.0.0', port=6666)
    
    

    before_request()函数被app.before_request修饰以后,每一次请求到来后,都会先进入函数before_request()中。

    如上代码,获取请求的ip以及url,并打印出来,执行完毕后请求才会正常进入到app.route修饰的函数中响应。

    如果有多个函数被app.before_request修饰了,那么这些函数会被依次执行。

    app.before_request修饰器在开发中用处非常大,比如判断某个ip是否有恶意访问行为,从而进行拦截等操作。

    同理,app.after_request修饰器,在用户请求得到函数响应后被执行。

    需要注意的是这个执行是在函数返回数据给client之前被调用(做一些其他收尾工作),即请求已经被app.route修饰的函数响应过了,已经形成了response,但还未返回给用户的时调用的。

    以上。

    原文:https://www.jb51.net/article/133139.htm

  • 相关阅读:
    javascript修改浏览器title方法 JS动态修改浏览器标题
    input type="checkbox" 选中传值,不选中传值的方法讲解
    关闭控制台的自动切换按钮
    mac切图
    charles
    apache
    超级经典的HTTP协议讲解
    一个很有趣的算法
    移动端网络判断
    移动端1px细线的处理
  • 原文地址:https://www.cnblogs.com/lovebkj/p/12794550.html
Copyright © 2011-2022 走看看