SQLAlchemy最新2.0数据库操作
一、Session对象
session⽤于创建程序和数据库之间的会话,所有对象的载⼊和保存都需通过session对象。在Web项⽬中,⼀个请求共⽤⼀个session对象。
1、创建Session对象的两种⽅式
# 第⼀种,需要⾃⼰提交事务
with Session(bind=engine) as session:
session.begin()
try:
session.add(some_object)
session.add(some_other_object)
except:
session.rollback()
raise
else:
session.commit()
# 第⼆种, 不需要⾃⼰提交事务
with sessionmaker(bind=engine).begin() as session:
sess.execute()
2、新增模型对象操作
add:添加单个对象
add_all:批量添加对象
with sessionmaker(engine).begin() as session:
# 新增数据(一)
emp1 = Employee(name="kobe", sal=10000, bonus=1000, gender=SexValue.MALE, entry_date=date(2019, 1, 1))
emp2 = Employee(name="james", sal=20000, bonus=2000, gender=SexValue.MALE, entry_date=date(2018, 1, 1))
emp3 = Employee(name="curry", sal=30000, bonus=3000, gender=SexValue.MALE, entry_date=date(2017, 1, 1))
emp4 = Employee(name="green", sal=30000, bonus=3000, gender=SexValue.MALE, entry_date=date(2017, 1, 1))
# session.add(emp1)
session.add_all([emp3,emp4])
类SQL的方式
with sessionmaker(engine).begin() as session:
insert_stmt=insert(Employee).values(name="durent",sal=11000)
session.execute(insert_stmt)
3、简单查询操作
3.1、根据主键查询返回一条数据
with sessionmaker(engine).begin() as session:
# todo get返回一条数据
emp1=session.get(Employee,1)
print(emp1)
kobe, 男, 10000.00, 2019-01-01,1000
3.2、查询整张表的数据
a、返回模型对象
with sessionmaker(engine).begin(

最低0.47元/天 解锁文章
6538

被折叠的 条评论
为什么被折叠?



