Werkzeug 和 SQLAlchemy 0.5x 会话
更新:
在学习Werkzeug的教程时,我在使用sessionmaker()创建SQLAlchemy会话时遇到了问题,而不是使用推荐的create_session()。
注意:这不是关于SA(SQLAlchemy),而是关于Werkzeug。
Werkzeug教程:
session = scoped_session(lambda: create_session(bind=application.database_engine,
autoflush=True, autocommit=False), local_manager.get_ident)
我问如何用sessionmaker()来实现同样的功能:
结果#pocoo的朋友们帮了我:
session = scoped_session(lambda: sessionmaker(bind=application.database_engine)(),
local_manager.get_ident)
在sessionmaker(**args)后面没有()时,它一直给我报错:
运行时错误:没有对象绑定到应用程序
附注:如果删除lambda,它将无法工作。
1 个回答
4
sessionmaker()
返回的是一个会话工厂,而不是一个具体的会话。scoped_session()
需要一个会话工厂作为参数。所以只需要去掉 lambda:
,直接把 sessionmaker()
的结果传给 scoped_session()
就可以了。