国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

sqlalchemy 學(xué)習(xí)(二)scoped session

2019-11-14 11:09:30
字體:
供稿:網(wǎng)友

數(shù)據(jù)庫設(shè)計(jì)的難點(diǎn)之一,是session生命周期的管理問題。sqlalchemy提供了一個(gè)簡單的session管理機(jī)制,即scoped session。它采用的注冊模式。所謂的注冊模式,簡單來說,是指在整個(gè)程序運(yùn)行的過程當(dāng)中,只存在唯一的一個(gè)session對象。

創(chuàng)建scoped session的方法如下

from sqlalchemy.orm import scoped_sessionfrom sqlalchemy.orm import sessionmakersession_factory = sessionmaker(bind=some_engine)Session = scoped_session(session_factory)

scoped_session本質(zhì)上也是一個(gè)方法,它首先通過session工廠創(chuàng)建session對象,然后對session對象進(jìn)行相應(yīng)的管理。

如果需要?jiǎng)?chuàng)建session對象,可執(zhí)行下面的代碼。

some_session = Session()

注意,由于scoped session采用的是注冊模式,因此下面代碼的session1和session2是一個(gè)相同的對象引用。

session1 = Session()session2 = Session()

但是下面代碼中的session1和session2是不同的對象引用。因?yàn)閟ession2創(chuàng)建之前,session1已經(jīng)被銷毀。

session1 = Session()session1.remove()session2 = Session()介紹到這里,我們知道scoped session本質(zhì)上是一個(gè)全局變量??墒牵绻苯影裺ession定義成全局變量,在多線程的環(huán)境下,會(huì)造成線程同步的問題。為此,scoped session在默認(rèn)情況下,采用的線程本地化存儲方式。也就是說,每個(gè)線程的session對象是不同的。這樣,不同線程對數(shù)據(jù)庫的操作不會(huì)相互影響。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 千阳县| 贵定县| 汝南县| 台南县| 宾阳县| 通化市| 长沙县| 扶沟县| 红安县| 灌云县| 恩施市| 乌兰浩特市| 孟村| 江都市| 日照市| 桐梓县| 涟水县| 南汇区| 望谟县| 南郑县| 镇康县| 大理市| 贡嘎县| 乐山市| 南澳县| 屏南县| 大洼县| 广河县| 炉霍县| 昌乐县| 乌拉特后旗| 台江县| 平山县| 济阳县| 临汾市| 百色市| 山丹县| 铜梁县| 许昌市| 姚安县| 工布江达县|