SQLAlchemy:会话创建是否创建新连接?

时间:2013-09-20 18:05:40

标签: database sqlalchemy

我正在尝试了解使用Session的正确方法。如果使用

创建会话
session = Session()

每次都会创建与db的新连接,然后我必须尝试将会话重用于多个事务,否则我可以经常创建它。

你能帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

SQLAlchemy内置connection pooling for the engine that you make(如果已经可用,则重用连接)。

“会话”本身绑定到引擎:

# create a configured "Session" class
Session = sessionmaker(bind=some_engine)

# create a Session
session = Session()

因此,会话将自动使用默认连接池;你不需要做任何特别的事情来获得这个功能的好处。

您可以在the documentation中详细了解它的工作原理(如果您愿意,还可以调整连接池以修改连接超时和池大小等值)。