Переопределение имени таблицы в Flask-Alchemy

Я создаю приложение Flask и получаю доступ к базе данных MySQL с помощью Flask-Alchemy.

У меня есть следующий класс для доступа к таблице:

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' 

Для таблицы «price_table» это работает блестяще, но проблема в том, что у меня есть несколько таблиц с теми же столбцами, что и «price_table», из которых я знаю только имя во время выполнения.

Я хочу повторно использовать класс выше, поэтому я думал, что могу изменить имя таблицы для имени таблицы, которую мне нужно прочитать, но это не работает, программа продолжает читать таблицу цен,

Как переопределить имя tablename во время выполнения?

Вы должны использовать: tablename :

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

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

На основании комментария, оставленного jbub, я нашел следующее решение, которое делает трюк так же, как это необходимо.

 from app import db def ClassFactory(name): tabledict={'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(25,8)), 'quantity':db.Column(db.Numeric(25,8)),} newclass = type(name, (db.Model,), tabledict) return newclass