给定一个声明性 SQLAlchemy 类,我如何以编程方式检索作为主键的 Column 对象的列表?
假设我在 SQLAlchemy 中有一个类,
class Note(Base):
__tablename__ = 'notes'
slug = Column('short_title', String, primary_key=True)
date = Column('day', Date, primary_key=True)
contents = Column(Text, nullable=True)
仅给出对 Note 类的引用,函数如何根据它们构成相应表的主键来构建列表 ['Note.slug', 'Note.date'] ?
此外,有没有办法根据列属性过滤类属性? (例如可为空、类型、唯一性、索引中的成员资格等)
Say I have a class in SQLAlchemy like
class Note(Base):
__tablename__ = 'notes'
slug = Column('short_title', String, primary_key=True)
date = Column('day', Date, primary_key=True)
contents = Column(Text, nullable=True)
Given only a reference to the Note class, how could a function build the list ['Note.slug', 'Note.date'] predicated on their constituting the corresponding table's primary key?
Furthermore, is there a way to filter class attributes based on column properties? (such as nullable, type, uniqueness, membership in an index, etc)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
试试这个来找到主要字段。
这样您就可以从模型中找到任何类型的字段。
Try this to find the primary fields.
This way you can find any type of fields from your model.
这将为您提供一个主键列名称列表:
this will give you a list of column names which are primary_keys:
不完全是所需要的,而是一个更短的变体,仅使用内部信息:
这给了我们以下结果:
Not exactly what's needed, but a bit shorter variant that's only using inside information:
This gives us following result: