Форум сайта python.su
Добрый вечер!
Уже неделю думаю, над вопросом, как в приложение на Flask красиво вписать SQLalchemy в declarative режиме. С declarative самим по себе вроде всё понятно, с Flask-ом тоже, хотя я его только изучаю. Но вот паттерн создания объекта app, передачи ему конфига, и передачи этого же конфига для создания engine базы данных. Есть на примете идея, но это явно плохой стиль, потому и обращаюсь за помощью.
Чтобы не быть абстрактным, применительно к этому примеру:
https://github.com/miguelgrinberg/flasky
И интересно узнать, насколько часто declarative применяется в продакшене).
Офлайн
Нормально никак.
Вот есть тикет которий уже год закрить не могут и там вначале пример как использовать.
https://github.com/mitsuhiko/flask-sqlalchemy/issues/98
Если без flask-sqlalchemy
from sqlalchemy.orm import scoped_session from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker from ..config import config from model import User from model import * engine = create_engine(config.DATABASE, **config.DATABASE_ENGINE_CONFIG) Session = sessionmaker(autocommit=False, autoflush=False, bind=engine) db = scoped_session(Session) @app.teardown_request def shutdown_session(exception=None): db.remove()
Офлайн
Я, к слову, тоже работаю с базами похожим на предложенный alchemist образом. Только подключение к б.д. делаю в run. А так идентично практически. Ну и не @app.teardown_request а @app.teardown_context.
Отредактировано 4kpt_II (Дек. 5, 2014 23:15:42)
Офлайн
Спасибо большое!
Офлайн