【发布时间】:2018-08-05 05:49:08
【问题描述】:
我用 Python Flask-RESTful 制作了 API Server。
我的系统使用令牌认证来验证权限。
所以,我添加了用于验证令牌的中间件。
比如这样的代码,
[中间件.py]
class Test(object):
def __init__(self, app):
self.app = app
def __call__(self, environ, start_response):
print("gogo")
return self.app(environ, start_response)
[app.py]
from flask import Flask
from flask_restful import Api
from api.board import Article
from api.auth import Login, Register, RefreshToken
from middleware import Test
app = Flask(__name__)
api = Api(app)
api.add_resource(Login, '/login')
api.add_resource(Register, '/register')
api.add_resource(RefreshToken, '/refresh')
# middleware here
app.wsgi_app = Test(app.wsgi_app)
api.add_resource(Article, '/article')
if __name__ == '__main__':
app.run(debug=True)
我在/article 之前插入app.wsgi_app = Test(app.wsgi_app)。
所以我希望只有访问/article 会打印"gogo",但是每条路线都会打印"gogo"。
也许每条路由都经过中间件。
如何为特定路由应用中间件? (在这段代码中,只有/article)
【问题讨论】:
-
为什么不能使用decorator?
-
@DanilaGanchar 你能给我举个例子吗?
标签: python flask routes middleware