Я пытаюсь получить доступ к конфигурации Flask из кода моей базы данных , но он говорит мне, что я не в контексте приложения, возможно, потому, что приложение еще не полностью инициализировано.
У меня есть app.py:
Код: Выделить всё
from flask import Flask
from root.views.calibration_views import calibration
nwm_app = Flask(__name__)
nwm_app.config.from_pyfile('myConfig.cfg')
print('config', nwm_app.config)
Код: Выделить всё
from sqlalchemy import URL, create_engine
from sqlalchemy.orm import sessionmaker
from flask import current_app as nwm_app
url = URL.create(
drivername="postgresql",
username="postgres",
password="postgres",
host="localhost",
database="flask_test"
)
engine = create_engine(url, echo=True)
with nwm_app.app_context():
print('config', nwm_app.config)
Session = sessionmaker(bind=engine)
Код: Выделить всё
RuntimeError: Working outside of application context.
This typically means that you attempted to use functionality that was needed.
The current application. To solve this, set up an application context.
With app.app_context(). See the documentation for more information.
Часть меня задается вопросом, Конфигурацию Flask действительно следует использовать таким образом, хотя они говорят, что вам разрешено помещать туда свои собственные переменные. Было бы достаточно просто загрузить отдельный файл конфигурации, используя обычное поведение Python.
Подробнее здесь: https://stackoverflow.com/questions/786 ... sqlalchemy