我没有使用 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
Run Code Online (Sandbox Code Playgroud)
虽然我已经检查了this,但我不明白它的目的是什么__table_args__,所以我不知道这条线在做什么:
__table_args__ = (
Index('idx_forecast_bed_settings_forecast_id_property_id_beds',
'forecast_id', 'property_id',
'beds'),
)
Run Code Online (Sandbox Code Playgroud)
有人可以解释我的目的是__table_args__什么,以及前一段代码在做什么。
此属性包含通常发送到
Table构造函数的位置参数和关键字参数。
在构建声明性模型类期间 -ForecastBedSetting在您的情况下 - 附带的元类Base 创建Table. 该__table_args__属性允许向那个传递额外的参数Table。创建的表可以通过
ForecastBedSetting.__table__
Run Code Online (Sandbox Code Playgroud)
代码定义了一个内联索引,将Index实例传递给 created Table。索引使用字符串名称来标识列,因此如果没有传递给表,SQLAlchemy 无法知道它属于哪个表。
| 归档时间: |
|
| 查看次数: |
8575 次 |
| 最近记录: |