关于select语句的SQLAlchemy教程

时间:2013-12-31 21:28:14

标签: sqlalchemy

我试图关注以下网站的sqlalchemy教程,

http://www.rmunn.com/sqlalchemy-tutorial/tutorial.html

我在执行select语句时确实陷入困境,

根据教程,选择完成如下,但我不理解他在users.select中使用“users.c.name =='John'”的部分。声明中的“users.c”是什么?

不知道users.name就够了吗?

from sqlalchemy import *

# Let's re-use the same database as before
db = create_engine('sqlite:///tutorial.db')

db.echo = True  # We want to see the SQL we're creating

metadata = BoundMetaData(db)

# The users table already exists, so no need to redefine it. Just
# load it from the database using the "autoload" feature.
users = Table('users', metadata, autoload=True)

def run(stmt):
    rs = stmt.execute()
    for row in rs:
        print row

# Most WHERE clauses can be constructed via normal comparisons
s = users.select(users.c.name == 'John')
run(s)
s = users.select(users.c.age < 40)
run(s)

1 个答案:

答案 0 :(得分:2)

要回答问题的c部分:

users是一个Table实例,代表数据库中的一个表
users.cTable.c,只是Table.columns的别名,所以这就是访问表格列的方式。

至于教程:

您提供的链接是指sqlalchemy版本0.2。毋庸置疑,这是非常古老的。请考虑官方sqlalchemy documentation,特别针对您的案例SQL Expression Language tutorial