Werkzeug и SQLAlchemy 0.5x сессия - PullRequest
       20

Werkzeug и SQLAlchemy 0.5x сессия

0 голосов
/ 18 сентября 2009

Обновлен:

Проходя учебник Werkzeug текст , получил стек с созданием сеанса SQLAlchemy с использованием sessionmaker () вместо create_session (), как рекомендовано.

Примечание: речь идет не о SA, а о Werkzeug.

Werkzeug учебник:

session = scoped_session(lambda: create_session(bind=application.database_engine,
    autoflush=True, autocommit=False), local_manager.get_ident)

Я спросил, как добиться того же, используя sessionmaker ():

В результате ребята из #pocoo RCI помогли мне с этим:

session = scoped_session(lambda: sessionmaker(bind=application.database_engine)(),
    local_manager.get_ident)

без () в конце сеанса (** аргументы) он продолжал выдавать мне ошибку:

RuntimeError: объект не связан с приложением

P.S. если удалить лямбда , он не будет работать.

1 Ответ

4 голосов
/ 18 сентября 2009

sessionmaker() возвращает фабрику сеанса, а не сам сеанс. scoped_session() принимает фабрику сеанса в качестве аргумента. Так что просто опустите lambda: и передайте результат sessionmaker() непосредственно scoped_session().

...