关于ORM,以及Python中SQLAlchemy的scoped_session

Posted geeklove

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于ORM,以及Python中SQLAlchemy的scoped_session相关的知识,希望对你有一定的参考价值。

orm(object relational mapping):对象关系映射

python面向对象,而数据库是关系型。

orm是将数据库关系映射为Python中的对象,不用直接写SQL。

缺点是性能略差

 

通过sessionmaker,我们得到一个类,一个能产生session的工厂。

而使用scoped_session的目的,一言以蔽之:为了线程安全

scoped_session类似单例模式,当我们调用使用的时候,会先在Registry里找找之前是否已经创建session了。

要是有,就把这个session返回。

要是没有,就创建新的session,注册到Registry中以便下次返回给调用者。

scoped_session的实现使用了thread local storage技术,使session实现了线程隔离

 

以上是关于关于ORM,以及Python中SQLAlchemy的scoped_session的主要内容,如果未能解决你的问题,请参考以下文章

关于SQLAlchemy ORM框架

python之SQLAlchemy ORM 上

SQLAlchemy -- Python的SQLAlchemy和ORM

Python SQLAlchemy入门教程

Python ORM框架之SQLALchemy

如何在 Python 中将(有些复杂的)Postgresql 语句转换为 SQLAlchemy ORM?