sqlalchemy基础—实例学之二 查询数据库

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)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值