2016-12-12 5 views
0

私のフラスコ・スクリプトコードは、私が文書appcontext読み、以下の通りです:フリンジスクリプトを使用する際にapp_contextを使用する必要がないのはなぜですか?

from flask_script import Manager 
from app import app 
from models import User 
from ext import db 

manager = Manager(app) 
db.init_app(app) 

@manager.option('-u','--username',dest='username') 
@manager.option('-p','--password',dest='password') 
def add_user(username,password): 
    user = User(username=username, password=password) 
    db.session.add(user) 
    db.session.commit() 
    print 'success' 

をなぜそれapp_context.for例のない成功:

@manager.option('-u','--username',dest='username') 
@manager.option('-p','--password',dest='password') 
def add_user(username,password): 
    with app.app_context(): 
     user = User(username=username, password=password) 
     db.session.add(user) 
     db.session.commit() 
     print 'success' 

答えて

0

ので、アプリ内で宣言されたフラスコ、スクリプト、アプリのコンテキストを維持する

+0

ありがとうございます。私はフラスコスクリプトのソースコードを読んでいます。私は 'Comment .__ call__'メソッドに' app.test_request_context() 'という行があることがわかりました。あなたが正しいので、 'test_request_context'はアプリコンテキストをプッシュします。再度ありがとう~~~ – NunchakusHuang

関連する問題