我正在使用蓝图开发基于 Flask 0.12 的应用,并尝试使用 Flask-JWT(0.3.2)进行身份验证。
我找不到任何适用于 Flask-JWT 和蓝图的教程。
每个示例通常都有一段代码,类似于以下内容:
在经过蓝图设计的 Flask 应用中,其结构通常更像这样:
我找不到任何适用于 Flask-JWT 和蓝图的教程。
每个示例通常都有一段代码,类似于以下内容:
app = Flask(__name__)
jwt = JWT(app, authenticate, identity)
在经过蓝图设计的 Flask 应用中,其结构通常更像这样:
__init__.py:
from swarm.controllers.main import main
from swarm.controllers.grid import grid
from swarm.controllers.address import address
def create_app(object_name):
app = Flask(__name__)
...
app.register_blueprint(main)
app.register_blueprint(grid)
app.register_blueprint(address)
controllers/main.py:
main = Blueprint('main', __name__)
controllers/grid.py:
grid = Blueprint('grid', __name__)
controllers/address.py:
address = Blueprint('address', __name__)
我该如何引用Flask-JWT
并在控制器中使用其装饰器?
展示如何将JWT装饰器添加到标准示例(例如blueprintexample在flask源代码中或Michał Karzyński的REST API演示)可能更容易回答这个问题。
main.py、grid.py、address.py
中展示的代码应该放入__init__.py
文件中,以使它们成为适当的Python模块。在主__init__.py
文件中实例化Flask-JWT,然后从要使用的蓝图中导入它并装饰这些路由。我通常有一个__auth__蓝图来管理登录、注销、回调等我的身份验证服务(使用JWT)。 - abigpersonapp.py: jwt = JWT(app, authenticate, identify)
api/grid/endpoints/posts.py: from rest_api_demo.app import jwt
- ChrisGuest