我从the docs和this SO answer中获悉,Session
对象是线程局部的,因此每个线程中只能有一个Session。您可以通过sessionmaker
和scoped_session
为每个线程创建一个Session对象。 connection pooling上的文档似乎建议连接池是按{Engine
而不是按{Session
}。
我很困惑的是如何在Session
个对象之间共享数据库连接:
Session
对象或Engine
是否直接执行数据库命令?ScopedSession
对象是否具有自己的Engine
实例,或者它们共享对单个Engine
的访问权限?Engine
相同的线程中?最后:ScopedSession对象可以安全地共享对SQLite数据库的访问吗?