Python的ORM框架SQLAlchemy使用入门(三)

信仰比理智更有才华

创建表格| 插入记录| 查询

from sqlalchemy import create_engine
from sqlalchemy import MetaData, Column, Table, ForeignKey
from sqlalchemy import Integer, String

engine = create_engine('sqlite:///tutorial.db', echo=True)

metadata = MetaData(bind=engine)

'''使用metadata作为基本连接,我们可以创建表格'''
users = Table('users', metadata,
              Column('user_id', Integer, primary_key=True),
              Column('name', String(40)),
              Column('age', Integer),
              Column('password', String),
)
users.create()

'''插入记录是通过表格对象的insert()方法实现的,这将会定义一个子句对象(clause object)(就是CluseElement)来代理INSERT语句:'''
i = users.insert()

'''当我们创建这个插入语句对象时,语句本身也绑定到了Engine,并已经可以执行了。
子句对象的execute()方法将会将对象编译为特定引擎的SQL方言,并且执行语句:'''
i.execute(name='Mary', age=50, password='secret')
i.execute({'name': 'John', 'age': 42},
          {'name': 'Susan', 'age':57},
          {'name': 'Carl', 'age': 33})

s = users.select()
'''这时,我们并没有忽略execute()的返回值。他是一个ResultProxy实例,保存了结果,而行为非常类似于DBAPI中的cursor对象:'''
rs = s.execute()
row = rs.fetchone()
print('Id:', row[0])
print('Name:', row['name'])
print('Age:', row.age)
print('Password:', row[users.c.password])


'''查询条件同Python表达式,使用Column对象。所有表达式中的Column对象都是ClauseElements的实例,例如Select、Insert和Table对象本身:'''
r=users.select(users.c.user_name=='John').execute()
print(r.fetchone())

for row in rs:
    print(row.name, 'is', row.age, 'years old')

结果如图:

这里写图片描述


这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值