from sqlch_a import *
from sqlalchemy.orm import sessionmaker
##创建与数据库的会话
Session = sessionmaker(bind=engine)
##也可以用以下两条语句来实现
##Session = sessionmaker()
##Session.configure(bind=engine)
session = Session()
##定义并添加记录
ed_user = User(name='ed', fullname='Ed Jones', password='edspassword')
session.add(ed_user)
##可以添加对象的列表
##session.add_all(users list)
##提交更改
session.commit()
##回滚数据
##session.rollback()
##查询数据库
our_user = session.query(User).filter_by(name='ed').first()
print(our_user.password)
##遍历查询结果的名种常用方式
for instance in session.query(User).order_by(User.id):
print(instance.name, instance.fullname)
for name, fullname in session.query(User.name, User.fullname):
print(name, fullname)
for row in session.query(User, User.name).all():
print(row.User, row.name)
for u in session.query(User).order_by(User.id)[1:3]:
print(u)
for name, in session.query(User.name).filter_by(fullname='Ed Jones'):
print(name)
or name, in session.query(User.name).filter(User.fullname=='Ed Jones'):
print(name)
for user in session.query(User).\
filter(User.name=='ed').\
filter(User.fullname=='Ed Jones'):
print(user)
##以下为常用查询方法
##query.filter(User.name != 'ed') ##不等于
##query.filter(User.name.like('%ed%')) ##like
##query.filter(User.name.in_(['ed', 'wendy', 'jack'])) ##in
##query.filter(~User.name.in_(['ed', 'wendy', 'jack'])) ##not in
##query.filter(User.name == None) ##IS NULL
##query.filter(User.name != None) ##IS NOT NULL
##from sqlalchemy import or_
##query.filter(or_(User.name == 'ed', User.name == 'wendy')) ## OR
##query.filter(User.name.match('wendy')) ## match
##one() 有多个查询结果时抛出MultipleResultsFound错误,没有查询结果时抛出NoResultFound错误
##one_or_none()
##count()
##group_by(User.name)
sqlalchemy基础—实例学之二 查询数据库
最新推荐文章于 2024-06-22 12:06:58 发布