-1

它一定很简单,但我找不到让它工作的方法。因此,假设我创建了一个表,或者我从现有数据库自动加载生成了一个表对象,如下所示:

from sqlalchemy import create_engine, MetaData, Column, String, Table

engine = create_engine('sqlite://')
meta = MetaData(bind=engine)

def create_table(meta):
    tbl = Table('User', meta,
            Column('name', String),
            Column('surname', String),
    )

    meta.create_all()
    return tbl

tbl = create_table(meta)

现在假设我想使用一个会话和类似的东西

 session.add(myobject)

我如何从该表中实际创建一个对象,因为尝试直接调用该表不起作用:

Traceback (most recent call last):
  File "sample.py", line 17, in <module>
    tbl(name='dfd')
TypeError: 'Table' object is not callable

所以我想我需要某种映射,但是如何?

4

1 回答 1

-1

如果您是第一次尝试深入研究 SA,我建议您直接从教程开始,然后针对您自己的用例进行修改。与 DBAPI 方法相比,使用 SA 可能是一个巨大的飞跃(至少对我和我的团队来说是这样)。

您的示例代码使用的是核心教程,它不是ORM 接口。您的问题提到使用 a mapper(问题标题也是如此),因此您可能会更高兴遵循ORM tutorial。我建议不要在此处复制该代码,而是转到该页面并完成已发布的示例。

于 2012-08-01T18:33:45.690 回答