2014-02-10 96 views
0

你好家伙,我已经看到了这点让我感到doubted..The代码阵列功能

from sqlalchemy import * 

db = create_engine('sqlite:///tutorial.db') 


metadata = BoundMetaData(db) 

users = Table('users', metadata, 

Column('user_id', Integer, primary_key=True), 
Column('name', String(40)), 

Column('age', Integer), 

Column('password', String), 
) 



users.create() 

i = users.insert() 

i.execute(name='Mary', age=30, password='secret') 

i.execute({'name': 'John', 'age': 42}, 

{'name': 'Susan', 'age': 57}, 

{'name': 'Carl', 'age': 33}) 

s = users.select() 
rs = s.execute() 

row = rs.fetchone() 

print 'Id:', row[0] 

print 'Name:', row['name'] 

print 'Age:', row.age 

print 'Password:', row[users.c.password] 

在这里,我知道打印“ID:”代码row[0]打印从外地行的第一个值和row['name']打印行中的名称值,并从row.age打印行的年龄值。但在密码的情况下,您可以看到该条件不是上面给出的row[users.c.password]

我只需要知道使用c。是在这里ç看到的varibaleÇdecalired。就是它的代码或若有所失类..我havnt的对象成员..

对不起久问题。任何帮助将不胜感激。提前感谢

回答

1

.c是一个命名空间的Column对象链接到父母可选。任何Table有一个如做Select对象和这样的:

from sqlalchemy import Table, Column, MetaData, Integer 

m = MetaData() 
t = Table('t', m, Column('x', Integer)) 
print(t.c.x) 

也好像你正在阅读一些非常古老的教程,我建议不要。 sqlalchemy core tutorial是获取最准确信息的最佳方式。

存在使用.c的示例:http://docs.sqlalchemy.org/en/rel_0_9/core/metadata.html#accessing-tables-and-columns