SQLAlchemy对数据的增删改查操作
用session做数据的增删改查操作:
一、构建session对象:
所有和数据库的ORM
操作都必须通过一个叫做session
的会话对象来实现.
from sqlalchemy.orm import sessionmaker
engine = create_engine(DB_URI)
Base = declarative_base(engine)
session = sessionmaker(engine)()
二、添加对象
创建对象,即创建一条数据:
p1 = Person(name='wukong',age=555,country='china')
将这个对象添加到session
会话对象中:
session.add(p1)
将session
中的对象做commit
操作(提交):
session.commit()
一次性添加多条数据:
p1 = Person(name='wukong',age=555,country='china')
p2 = Person(name='wuneng',age=444,country='china')
session.add_all([p1,p2])
session.commit()
三、查找对象
# 查找某个模型对应的那个表中所有的数据:
all_person = session.query(Person).all()
# 使用filter_by来做条件查询
all_person = session.query(Person).filter_by(name='wukong').all()
# 使用filter来做条件查询
all_person = session.query(Person).filter(Person.name=='wukong').all()
# 使用get方法查找数据,get方法是根据id来查找的,只会返回一条数据或者None
person = session.query(Person).get(primary_key)
# 使用first方法获取结果集中的第一条数据
person = session.query(Person).first()
四、修改对象
首先从数据库中查找对象,然后将这条数据修改为你想要的数据,最后做commit
操作就可以修改数据了。
person = session.query(Person).first()
person.name = 'wuneng'
session.commit()
五、删除对象
将需要删除的数据从数据库中查找出来,然后使用session.delete
方法将这条数据从session
中删除,最后做commit
操作就可以了。
person = session.query(Person).first()
session.delete(person)
session.commit()