SqlAlchemy 建立数据库链接

对于现有数据库,可用sqlalchemy建立连接,查询表结构及数据。

以下代码例子中,通过创建engine,链接数据库corvus.db,并打印其中User这个表的字段结构。

from sqlalchemy import *

engine=create_engine('sqlite:///corvus.db',echo=True)
metadata=MetaData(engine)
user_table=Table('User',metadata,autoload=True)
for column in list(user_table.columns):
    print column.name

接下来是查询并逐行打印数据:

cmd_select = user_table.select()

result = cmd_select.execute()

data_list =list(result.fetchall())
for data in data_list:
    print data

当我们打印记录时返回的可执行对象,它以元组打印记录。例:

>>> result.fetchall()
[(2,u'Tom',None),(3,u'Fred',None),(4,u'Harry',None)]

当前的User表有3条记录,这些记录实际上同时支持列表(list)和字典(dict)接口。字典接口允许通过字符串的列名定位字段,或者通过Column对象:

>>> data=result.fetchone()
>>> print row
(4,u'Harry',None)
>>> data.keys()
['user_id','user_name','password']

要获取某字段的数据,同时可以用三种方式:

>>>data['user_id']
4
>>>data[0]
4
>>>data[users_table.c.user_id]
4

posted on 2013-10-20 16:34  0x9801  阅读(449)  评论(0)    收藏  举报

导航