SQLAlchemy指南
2008-11-10 13:25:13 来源:WEB开发网4.5 操作记录
你可以看到,当我们打印记录时返回的可执行对象,它以元组打印记录。这些记录实际上同时支持列表(list)和字典(dict)接口。字典接口允许通过字符串的列名定位字段,或者通过Column对象:
>>> row.keys()
['user_id','user_name','password']
>>> row['user_id'],row[1],row[users_table.c.password]
(4,u'Harry',None)
通过Column对象来定位是很方便的,因为这样避免了使用列名的方式。
结果集也是支持序列操作的。但是相对于select还有微小的差别,就是允许指定所选的列:
>>> for row in select([user_table.c.user_id,users_table.c.user_name]).execute():
4.6 表间关系
... print row
SELECT users.user_id,users.user_name
FROM users
[]
(1,u'Mary')
... ...
我们可以创建第二个表格,email_addresses,这会引用users表。定义表间的关联,使用ForeignKey构造。我们将来也会考虑使用表格的CREATE语句:
>>> email_addresses_table=Table('email_addresses',metadata,
... Column('address_id',Integer,primary_key=True),
... Column('email_address',String(100),nullable=False),
... Column('user_id',Integer,ForeignKey('users.user_id')))
>>> email_addresses_table.create()
CREATE TABLE email_addresses (
address_id INTEGER NOT NULL,
email_address VARCHAR(100) NOT NULL,
user_id INTEGER,
PRIMARY KEY (address_id),
FOREIGN KEY(user_id) REFERENCES users (user_id)
)
...
上面的email_addresses表与表users通过ForeignKey(’users.user_id’)相联系。ForeignKey的构造器需要一个Column对象,或一个字符串代表表明和列名。当使用了字符串参数时,引用的表必须已经存在于相同的MetaData对象中,当然,可以是另外一个表。
Tags:SQLAlchemy 指南
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接