操作步骤
第一步:获得会话对象
在sqlalchemy中除了利用Connection对象进行原生sql操作外,还可以通过Session对象进行原生sql操作。
from sqlalchemy import create_engine
from sqlalchemy.orm import Session
# 创建数据库引擎
dburl = 'mysql+pymysql://root:123456@127.0.0.1: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即可。