flask sqlalchemy-根据数据库中的列动态生成数据模型

时间:2019-03-08 21:21:20

标签: python flask flask-sqlalchemy

是否有一种基于Flask SQLAlchemy的数据库表中的列动态生成数据库模型的方法?

我有一个应用程序来显示数据库表中的数据,但是列名有时会更改并破坏我的应用程序。我想有一种方法可以根据数据库中的实际列名动态​​生成数据模型。

我目前明确声明所有列,如下所示。

class MyDbModel(db.Model):

    __tablename__ = 'my_table'

    id = db.Column('id', db.NVARCHAR(length=300), primary_key=True)
    name= db.Column('name', db.NVARCHAR(length=300),
                          nullable=True)

我对sqlalchamy不太熟悉,我尝试了以下操作,但出现如下错误,并且我不确定这是否是正确的方法。

could not assemble any primary key columns for mapped table

from sqlalchemy import Table, Column
from sqlalchemy.orm import mapper

    db = SQLAlchemy()

    class MyDbModel(db.Model):
        __tablename__ = 'my_table'

        def __init__(self):
            #helper function to get column headers of a db table
            table_cols = get_headers_or_columns(
                'my_table'
            )
            t = Table(
                'my_table', db.metadata,
                Column('id', db.NVARCHAR(length=300), primary_key=True),
                *(Column(table_col, db.NVARCHAR(length=300)) for table_col in table_cols)
            )

            mapper(self, t)

感谢您的帮助!

0 个答案:

没有答案