使用SQLAlchemy声明式语法访问表实例的最佳方法

8 投票
3 回答
3341 浏览
提问于 2025-04-11 09:17

所有关于SQLAlchemy的文档都给出了使用本地表实例的INSERTUPDATE示例(比如tablename.update()...)

但是,用声明式语法来做这件事似乎有点困难,我需要引用Base.metadata.tables["tablename"]来获取表的引用。

我是不是应该换个方法来做?在使用声明式语法时,有没有推荐的不同的INSERTUPDATE语法?我是不是应该回到以前的写法?

3 个回答

0

可能会有些混淆,table指的是一个对象,而tablename是这个表的名字,用字符串表示。使用table这个类的属性对我来说是没问题的。

4

通过你声明的类中的 __table__ 属性

10

嗯,这对我来说是有效的:

class Users(Base):
    __tablename__   = 'users'
    __table_args__  = {'autoload':True}

users = Users()
print users.__table__.select()

...选择用户.......

撰写回答