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

  • 相关阅读:
    谈谈Nullable<T>的类型转换问题
    MiniProfiler使用方法
    捕获变量
    web服务相关的问题或技巧
    对接mysql数据库遇见的一些问题
    委托
    导出到Excel
    斐波那契数列的运算时间
    .net framework摘抄与理解
    sql 语句
  • 原文地址:https://www.cnblogs.com/lovebkj/p/12794550.html
Copyright © 2011-2022 走看看