Flask-SQLAlchemy如何拥有一个可以在多个表中使用的类

时间:2020-05-25 17:24:42

标签: sql postgresql flask flask-sqlalchemy

如何更改要在其中插入类实例的表?使用PostgreSQL语法,我可以说INSERT INTO departures...来指定我想要的表,但是使用SQLAlchemy,该表与该类相关联,因此无法在整个应用程序中更改该表。

如果可以找到最佳解决方案,我已经在下面进行了很多研究:

def create_model(table_type):
    class Flight(db.Model):
        __tablename__ = table_type
        __table_args__ = {'extend_existing': True}
        id = db.Column(db.Integer, primary_key = True)
        username = db.Column(db.String, nullable = False)
        ...
    globals().update(locals())

我使用上述模型的方式是在对数据库执行任何操作之前选择table_type:

create_model("departures")
db.session.add(flight1)
db.session.commit()

有更好的方法吗?似乎效率很低,并且在将类导入不同文件时会引起麻烦。

1 个答案:

答案 0 :(得分:0)

数据库模型是表及其数据的表示。我看不出有2个表具有相同数据和列定义的理由,而afaik则没有。

看看您的模型和示例,建议您添加一个AddFieldConfig列,其中包含houseType := &graphql.Object{...} residentType := &graphql.Object{...} houseType.AddFieldConfig("residents", &graphql.Field{Type: graphql.NewList(residentType)}) residentType.AddFieldConfig("houses", &graphql.Field{Type: graphql.NewList(houseType)}) type。这样,您可以保持数据整洁,并且仍然能够查询所需的内容。