问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

sqlalchemy 里的 session 具体有什么作用

发布网友 发布时间:2022-04-26 10:38

我来回答

3个回答

懂视网 时间:2022-05-02 15:34

(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

标签:nmake   obj   对象   直接   thread   单例   ssi   线程安全   创建   

热心网友 时间:2022-05-02 12:42

官网有写,不过看的不是很懂。
大致意思是Session用于创建程序与数据库之间的会话,并将这个会话以python的面向对象方式(“holding zone”)进行包装,提供给python其他程序调用。
Session提供一个进行数据库查询(query)的入口,python程序通过Session实例,可以对正在连接的数据库进行查询(查询结果是一个面向对象实例),将修改的内容(一般是修改面向对象实例,然后通过Session将修改的实例与数据库中特定数据“同步”。)
Session中有一个很重要的理念“Identity Map”。Session查询的结果实例,我们修改过的实例,和数据库中的数据是怎么关联起来的呢?就是靠“Identity Map”,每个实例都具有“Identity Map”记录,每个“Identity Map”都和数据行的主键(primary key)一一对应。

(这是我的渣英语翻译+个人理解写的。有不对的地方,欢迎大神指点)

官网内容:
In the most general sense, the Session establishes all conversations with the database and represents a “holding zone” for all the objects which you’ve loaded or associated with it ring its lifespan. It provides the entrypoint to acquire a Query object, which sends queries to the database using the Session object’s current database connection, populating result rows into objects that are then stored in the Session, inside a structure called the Identity Map - a data structure that maintains unique copies of each object, where “unique” means “only one object with a particular primary key”.

官网资料:http://docs.sqlalchemy.org/en/rel_0_9/orm/session_basics.html#what-does-the-session-do

热心网友 时间:2022-05-02 14:00

保持mysql连接不中断的意思、、跟http的会话大概一个意思。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
色彩中蓝色、红色、黄色除了加白色以外还有什么办法提高明度 色彩不敢调亮怎么办? 色彩如何提亮 男朋友惹我生气了 事后一点悔意也没 都在气头上 我不小心打男朋友了 他... 解签:为人处事莫亏心,暗室之中有灵应,一时得意反成失,半点悔改胜似金... 我手机之前一段时间由于欠费停机了 前几天我充了50元进去怎么还是... 撕名牌可以用哪些超能力技能? 为什么5孔插座带开关,安装好之后,灯有电,插座不通电? 怎么把照片内存变小 图片内存变小的方法 百度地图导航如何连接车蓝牙 百度地图导航连接车蓝牙方法 如何升级python sqlalchemy 如何理解python的sqlalchemy这种orm框架 如何使用sqlalchemy切换数据库 SQLAlchemy怎么在Oracle中自动建立映射 sqlalchemy怎么修改表结构 如何在 SQLAlchemy 中定义触发器,存储过程 flask-sqlalchemy 和sqlalchemy的区别 如何使用SQLAlchemy库写出防SQL注入的Raw SQL-WEB安全 sqlalchemy怎么多个数据库使用 SQLAlchemy添加数据 关于sqlalchemy的一些问题。 flask web开发遇到sqlalchemy 查询为None怎么解决 如何用sqlalchemy 用sqlalchemy怎么写这样的sql语句 如何使用ORM中的网红“sqlalchemy”,连接python数据库 关于市场份额的计算 市场份额的测算方法 市场占有率怎么计算? 市场份额平方值计算公式 请问市场占有率或市场份额的数学模型是什么?就是计算公式之类的 如何使用python的yolodb模块 陈奕迅的十年歌词是什么意思? 陈奕迅唱的《十年》歌词含义是什么? 全面解析《十年》整首歌词意思 陈亦迅“十年”歌词的意思是什么 陈奕迅 唱的十年歌词是什么含义? 陈奕迅的十年歌词是什么意思 十年歌词是什么意思 陈奕迅十年这首歌表达什么意境? 《十年》歌词解释? 《十年》歌词的含义 《十年》这首歌讲的是什么意思阿? 陈奕迅的《十年》,歌词唱的是什么意思?听了很多次,一直听不懂 《十年》的歌词所要表达的意思是什么? 谁可以告诉我《十年》这个歌的歌词意思? 陈奕迅十年这首歌的歌词含义是什么 一下陈奕迅的十年这首歌的歌词是要表达什么意思 离婚,步骤怎么办? 粽的组词有什么 苹果电脑怎么下载excel软件,