2016-08-01 2 views
0

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

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. 
+0

Что вы ожидаете от текущего пользователя? (Он не настроен ни на что вне запроса.) Почему вы не передаете свое фактическое приложение при инициализации расширения? – davidism

+0

Это то, что у меня в main.py: 'из опоки импорта Колба, Blueprint, render_template, сессии, перенаправлять, url_for, бежать, запрос, прервать ... приложение = Колба (__ name__) app.config .from_pyfile ("./ config.py") ... app.register_blueprint (api_auth) ' До этого момента я находился под впечатлением. Колба автоматически распространяла контекст приложения через current_app. Я могу видеть мои постоянные значения в моих узлах Blueprint при обновлении config.py. – goterpsgo

ответ

0

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

current_app = Flask(__name__)