Flask-sqlalchemy как динамически создавать таблицы с именем заданным пользователем

Есть образец модели таблицы описанный с помощью класса Center прописанный в файле models.py

 class Center(db.Model):  
        __bind_key__ = 'militarynote'
        __tablename__ = 'Table_name'
        id = db.Column(db.Integer, primary_key=True)
        number = db.Column(db.Integer)

        def __init__(self, *args, **kwargs):
            super(Center, self).__init__(*args, **kwargs)

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

Center = input('Введите имя таблицы: ')  # Например - 'Cis'

class Center(db.Model):  
    __bind_key__ = 'militarynote'
    __tablename__ = lower(Center)
    id = db.Column(db.Integer, primary_key=True)
    number = db.Column(db.Integer)

    def __init__(self, *args, **kwargs):
        super(Center, self).__init__(*args, **kwargs)

db.create.all()

В этом случае все работает. Но придется каждый раз в коде прописывать класс после того как мы получили переменную. Но этим мы нарушаем DRY. Если прописывать класс в файл models.py получаю ошибку:

__tablename__ = lower(Center): - Что Center - не определен.

По хорошему тут нужно как то присваивать параметр __name__ . И опять же встает вопрос как потом обратится к этому классу задав имя. Подскажите как правильно реализовать данную задачу?


Ответы (0 шт):