相关疑难解决方法(0)

在蓝图应用程序中访问 Flask 全局变量

我的源代码具有以下结构:

main.py

from flask import Flask, g
app = Flask(__name__)
with app.app_context():
    g.my_db = PostgreSQL()
    app.register_blueprint(my_app, url_prefix="/my_app")
Run Code Online (Sandbox Code Playgroud)

my_app.py

from flask import Blueprint, g
my_app = Blueprint("my_app", __name__)
@my_app.route("/")
def index():
    return g.my_db.fetch_all()   <<< ERROR
Run Code Online (Sandbox Code Playgroud)

但它显示了这个错误:

AttributeError: '_AppCtxGlobals' object has no attribute 'my_db'

即使我尝试g在应用程序上下文之外使用,它也会显示此错误:

RuntimeError: Working outside of application context.

那么如何在 Flask 中设置和访问全局变量呢?

python flask python-3.x

7
推荐指数
1
解决办法
4588
查看次数

AttributeError:__ enter__使用with语句SqlAlchemy session

AttributeError: __enter__当我尝试使用像本指南中的 sqlalchemy会话时,我得到这个.

我的代码:

Session = scoped_session(sessionmaker(autoflush=True, autocommit=False, bind=engine))

@contextmanager
def session_scope():
    session = Session()
    try:
        yield session
        session.commit()
    except:
        session.rollback()
        raise
    finally:
        session.close()

class SomeClass:

    def __init__(self):
        self.session_scope = session_scope

    def something_with_session(self):

        with self.session_scope as session: <-- error
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?我正在使用python 3.6

python session sqlalchemy contextmanager

5
推荐指数
2
解决办法
1万
查看次数

标签 统计

python ×2

contextmanager ×1

flask ×1

python-3.x ×1

session ×1

sqlalchemy ×1