sqlalchemy中__table_args__的目的是什么?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqlalchemy中__table_args__的目的是什么?相关的知识,希望对你有一定的参考价值。
我没有sqlalchemy的经验,我有以下代码:
class ForecastBedSetting(Base):
__tablename__ = 'forecast_bed_settings'
__table_args__ = (
Index('idx_forecast_bed_settings_forecast_id_property_id_beds',
'forecast_id', 'property_id',
'beds'),
)
forecast_id = Column(ForeignKey(u'forecasts.id'), nullable=False)
property_id = Column(ForeignKey(u'properties.id'), nullable=False, index=True)
# more definition of columns
虽然我检查了this,但我无法理解__table_args__
的目的是什么,所以我不知道这条线在做什么:
__table_args__ = (
Index('idx_forecast_bed_settings_forecast_id_property_id_beds',
'forecast_id', 'property_id',
'beds'),
)
有人可以解释一下__table_args__
的目的是什么,以及之前的代码是做什么的。
答案
此属性适用于通常发送到
Table
构造函数的位置和关键字参数。
在构造一个声明性模型类 - 在你的情况下ForecastBedSetting
- Base
creates an instance of Table
附带的元类。 __table_args__
属性允许将额外的参数传递给Table
。创建的表可通过以下方式访问
ForecastBedSetting.__table__
代码defines an index inline,将Index
实例传递给创建的Table
。索引使用字符串名称来标识列,因此不会传递给表SQLAlchemy无法知道它属于哪个表。
以上是关于sqlalchemy中__table_args__的目的是什么?的主要内容,如果未能解决你的问题,请参考以下文章
使用 SQLAlchemy、SQLite 和 Postgresql 架构限定表?
python flask-sqlalchemy如何设置使自动建的mysql表字符集charset为utf8
如何使用 create_all() 跨文件的 sqlalchemy orm 对象