python 服务器和客户端的flask请求ID

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 服务器和客户端的flask请求ID相关的知识,希望对你有一定的参考价值。

from flask import request, g
from xid import Xid


def _init_request_id():
    """
    See also:
        http://blog.mcpolemic.com/2016/01/18/adding-request-ids-to-flask.html
    """
    # See: https://www.nginx.com/blog/application-tracing-nginx-plus/
    request_id = request.headers.get('X-Request-ID')

    if not request_id:
        request_id = Xid().string()

    g.request_id = request_id


def _set_resp_header(resp):
    resp.headers.add('X-Request-ID', g.request_id)
    return resp


class RequestID(object):
    """
    app = Flask(__name__)
    RequestID(app)

    @app.route('/req-id')
    def req_id():
        return "{0} is the unique ID for the request, "
               "which is also in response headers".format(g.request_id)
    """
    def __init__(self, app):
        self.app = app
        self.init_app(app)

    def init_app(self, app):
        app.before_request(_init_request_id)
        app.after_request(_set_resp_header)

以上是关于python 服务器和客户端的flask请求ID的主要内容,如果未能解决你的问题,请参考以下文章

Python 脚本与将内容传输到客户端的 Python Flask 服务器通信的最佳方式是啥?

利用flask和gevent怎样实现长连接

flask编写RESTful API

前端与后端的数据交互(jquery ajax+python flask)

Flask从入门到精通之flask程序入门

如何将flask-socketio用于没有http请求的python脚本