SQLAlchemy:为什么不使用作用域会话?

2024-05-18 12:04:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在试图理解sessions在SQLAlchemy中的用法。 有一件事我很纠结,scoped_session似乎是万无一失的-你要求一个会话,你每次都得到相同的线程本地版本,你完成后关闭它。文档clearly state认为这是并发使用的方法,但在我看来,它还应该避免其他更简单的错误,例如,当父函数已经创建了一个新会话时,错误地打开了一个新会话。在

我想使用scoped_session的唯一原因是,如果您需要多个单独的会话,例如,如果您同时访问两个数据库-这是对的吗?你为什么还要坚持使用常规的Session对象呢?在


Tags: 方法函数文档版本数据库用法sqlalchemysession
1条回答
网友
1楼 · 发布于 2024-05-18 12:04:06

scope峎session的唯一缺点是它使用了一个本地线程,这是否是一个缺点也有待讨论。在

要明白线程局部本质上是一个全局变量,它在整个代码中传递,以提高代码的清晰度。您需要确保不会因为不小心将其传递到其他线程或意外地将其存储在某个地方以供以后使用而滥用它。在

有关详细信息see

相关问题 更多 >