覆盖 Flask-Alchemy 中的表名

MPL*_*MPL 1 python mysql flask flask-sqlalchemy

我正在创建一个 Flask 应用程序并使用 Flask-Alchemy 访问 MySQL 数据库。

我有以下类来访问表:

class price_table(db.Model):
    id = db.Column(db.Integer, primary_key = True)
    trans_id = db.Column(db.Integer)
    timestamp = db.Column(db.Integer)
    order_type = db.Column(db.String(25))
    price = db.Column(db.Numeric(15,8))
    quantity = db.Column(db.Numeric(25,8))
    def __repr__(self):
            return 'id'
Run Code Online (Sandbox Code Playgroud)

对于表 'price_table' 这非常有效,但问题是我有几个表与 'price_table' 的列相同,我只知道运行时的名称。

我想重用上面的类,所以我想我可以将tablename更改为我需要读取的表的名称,但这不起作用,程序一直在读取“价格表”

如何在运行时覆盖表名?

小智 9

你应该使用__tablename__::

class User(Base):
    __tablename__ = 'users'
    id = Column(Integer, primary_key=True)
    name = Column(String(50), unique=True)
    email = Column(String(120), unique=True)
Run Code Online (Sandbox Code Playgroud)

http://flask.pocoo.org/docs/0.12/patterns/sqlalchemy/