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

时间:2020-03-05 18:56:53  来源:igfitidea点击:

SQLAlchemy的所有文档都使用本地表实例提供了INSERT和UPDATE示例(例如tablename.update()...)

使用声明性语法似乎很难做到这一点,我需要引用Base.metadata.tables [" tablename"]以获得表引用。

我应该以另一种方式这样做吗?使用声明性语法时,建议对" INSERT"和" UPDATE"使用不同的语法吗?我应该改用旧方法吗?

解决方案

回答

通过声明式类上的__table__属性

回答

很好,对我有用:

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

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

...选择用户....

回答

表(对象)和表名(表名,字符串)之间可能会有些混淆。使用表类属性对我来说很好。