我试图关注以下网站的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)
答案 0 :(得分:2)
要回答问题的c
部分:
users
是一个Table
实例,代表数据库中的一个表
users.c
是Table.c
,只是Table.columns
的别名,所以这就是访问表格列的方式。
至于教程:
您提供的链接是指sqlalchemy版本0.2。毋庸置疑,这是非常古老的。请考虑官方sqlalchemy documentation,特别针对您的案例SQL Expression Language tutorial。