Flask-JWT не распознает current_app

Я хочу использовать Flask-JWT с моим приложением. Когда я пытаюсь инициализировать его с current_appЯ получаю ошибку. До этого момента я использовал current_app успешно вместо app = Flask(__name__) так что это было немного неожиданно. Я что-то упускаю?

main.py

from flask import Flask

app = Flask(__name__)
app.config.from_pyfile("./config.py")

from app import api_auth
app.register_blueprint(api_auth.bp)

api_auth.py

from flask import current_app
from flask_jwt import JWT

def authenticate(username, password):
  ...
  return user

def identity(payload):
  ...
  return userid_table.get(user_id, None)

jwt = JWT(current_app, authenticate, identity)
Traceback (most recent call last):
  File "./wsgi.py", line 1, in <module>
    from main import app as application
  File "./main.py", line 5, in <module>
    from auth import api_auth
  File "./auth.py", line 59, in <module>
    jwt = JWT(current_app, authenticate, identity)
  File "/opt/mist_base/env/lib/python2.7/site-packages/flask_jwt/__init__.py", line 216, in __init__
    self.init_app(app)
  File "/opt/mist_base/env/lib/python2.7/site-packages/flask_jwt/__init__.py", line 220, in init_app
    app.config.setdefault(k, v)
  File "/opt/mist_base/env/lib/python2.7/site-packages/werkzeug/local.py", line 343, in __getattr__
    return getattr(self._get_current_object(), name)
  File "/opt/mist_base/env/lib/python2.7/site-packages/werkzeug/local.py", line 302, in _get_current_object
    return self.__local()
  File "/opt/mist_base/env/lib/python2.7/site-packages/flask/globals.py", line 51, in _find_app
    raise RuntimeError(_app_ctx_err_msg)
RuntimeError: Working outside of application context.

1 ответ

Вам нужно инициализировать ваш класс 'current_app', прежде чем вы сможете его использовать.

current_app = Flask(__name__)
Другие вопросы по тегам