sqlalchemy_No4_利用原生SQL与数据库交互_Session对象实现

文章目录

  • 操作步骤
    • 第一步:获得会话对象
    • 第二步:利用text函数创建原生sql
    • 第三步:利用Session对象执行原生sql
    • 第四步:关闭Session对象
    • 步骤整合
  • 数据库操作示例

操作步骤

第一步:获得会话对象

在sqlalchemy中除了利用Connection对象进行原生sql操作外,还可以通过Session对象进行原生sql操作。

from sqlalchemy import create_engine
from sqlalchemy.orm import Session
# 创建数据库引擎
dburl = 'mysql+pymysql://root:[email protected]:3306/testdb'
engine = create_engine(url=dburl)
# 创建会话对象
session = Session(engine)

第二步:利用text函数创建原生sql

利用sqlalchemy中的text函数将sql字符串加工为原生sql。

from sqlalchemy import text
sql_text = text("SELECT name, age FROM student")

第三步:利用Session对象执行原生sql

利用Session实例对象的execute函数可以与数据库进行事务交互。

students = session.execute(sql_text)

第四步:关闭Session对象

由于Session对象也是一种资源,所以在事务处理完后要及时关闭资源。

session.close()

步骤整合

可以利用Python的上下文管理器的方式使用会话对象,用完后会话对象自动关闭。

with Session(engine) as session:
	students = session.execute(sql_text)
	for name, age in students:
		print(name,age)

数据库操作示例

参见Connection对象进行原生sql操作,而将connection改为session即可。

你可能感兴趣的:(#,ORM,数据库,sql,python,后端)