2016-08-01 9 views
0

Flask-JWTを自分のアプリケーションで使いたいです。 current_appで初期化しようとすると、エラーが発生します。今まで私はapp = Flask(__name__)の代わりにcurrent_appを首尾よく使っていたので、これはちょっと予想外でした。私は行方不明のものがありますか?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

current_appにはどのようなものがありますか? (リクエスト以外のものには設定されていません)。拡張機能を初期化するときに実際のアプリを渡すのはなぜですか? – davidism

+0

これは私が私のmain.pyに持っているものです。 'フラスコインポートフラスコ、青写真、render_template、セッション、リダイレクト、なurl_for、脱出、要求、 を中止... アプリは=フラスコ(__ name__) app.configをから.from_pyfile( "./config.py") ... app.register_blueprint(api_auth) ' これまでのところ、私はFlaskがcurrent_appを介して自動的にアプリコンテキストを宣伝するという印象を受けました。 config.pyを更新すると私の青写真ノードで私の定数値を見ることができます。 – goterpsgo

答えて

0

、あなたが実際にそれを使用することができます前に、あなたのクラスのCURRENT_APP」を初期化する必要があります。

関連する問題