Переопределение имени таблицы в 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 во время выполнения?

2 Solutions collect form web for “Переопределение имени таблицы в Flask-Alchemy”

Вы должны использовать: 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 
  • Об обновлении объектов в сеансе sqlalchemy
  • База данных «на лету» со сценарием
  • SQLAlchemy упорядочивает, рассчитывая на отношение многих ко многим
  • Могут ли события SQLAlchemy использоваться для обновления денормализованного кэша данных?
  • Как выполнить необработанный запрос с возвратом в sqlalchemy
  • Как создать флеш-приложение вокруг уже существующей базы данных?
  • Пример sqlalchemy фляжки вокруг существующей базы данных
  • SQLAlchemy: распечатать фактический запрос
  • SQLAlchemy Вложенная ошибка отката
  • AttributeError: объект 'int' не имеет атрибута '_sa_instance_state'
  • OperationalError: (OperationalError) (2003, «Не удается подключиться к серверу MySQL на« 192.168.129.139 »(111)») Нет Нет
  •  
    Interesting Posts for Van-Lav

    Сравнение двух списков координат в python и использование значений координат для назначения значений

    Что означают квадратные скобки, «», в документации по функциям / классу?

    Есть ли какой-либо умный способ комбинировать перекрывающиеся пути в python?

    сохранить переменную в интерактивное пространство имен из отладчика python

    Когда нужно ловить MemoryError в Python?

    Есть ли какой-нибудь инструмент для перевода кода Lisp в Python?

    Почему я не могу присоединиться к этому кортежу в Python?

    Функция потери квадратов с квадратом

    Google App Engine (python): TemplateSyntaxError: инструкции «для» с пятью словами должны заканчиваться на «reverse»

    Разница между «установкой python setup.py» и «pip install»

    Использование Google Cloud Datastore с API NDB?

    Caffe: Как получить параметры `solver.prototxt` по коду?

    Python South не собирает изменения, внесенные в метод add_to_class ()

    Почему subprocess.Popen не работает, когда args является последовательностью?

    Указание имен файлов по умолчанию с помощью argparse, но не открытие их на –help?

    Python - лучший язык программирования в мире.