Middleware of flask

The reason why a thing can be bracketed,

1. Class

2. Function

3. Object

4. Method

middleware example

from flask import Flask
app = Flask(__name__)
app.secret_key = 'sfergeheh'

@app.route('/x1',methods=['GET','POST'])
def index():
    return 'x1'

class Middleware(object):
    def __init__(self,old_wsgi_app):
        """
        Executed automatically when the server starts
        :param old_wsgi_app:
        """
        self.old_wsgi_app = old_wsgi_app

    def __call__(self, environ, start_response):
        """
        every time a request comes
        :param about:
        :param start_response:
        :return:
        """
        print('before')
        from flask import session,request
        obj = self.old_wsgi_app(environ, start_response)
        print('after')
        return obj
if __name__ == '__main__':
    app.wsgi_app = Middleware(app.wsgi_app) #
    app.run()

    """
    1. Execute app.__call__()
    2. Call the app.wsgi_app method
    """

 

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325079072&siteId=291194637