Я пытаюсь разработать веб-приложение с Flask. Я пытаюсь сделать следующее:
- Получить данные от клиента в виде таблицы
- Используйте pandas для выполнения вычислений в каждой строке таблицы и создания нескольких dfs а затем добавьте их в один df
- Затем используйте to_ sql для загрузки консолидированного df в таблицу в postgres базе данных, используя Flask SQLalchemy (я в порядке, пока здесь)
- Затем я хочу использовать Flask sqlalchemy для запроса и редактирования таблицы в базе данных.
Проблема в шаге 4. Так как я использую функцию to_ sql для создания таблицы в база данных, таблица не имеет первичного ключа.
Когда я использую следующий код для отражения классов:
db.Model.metadata.reflect(db.engine)
class LeaseInfo(db.Model):
__table__ = db.Model.metadata.tables['lease_info']
def __repr__(self):
return self.DISTRICT
, я получаю следующую ошибку: sqlalchemy.ex c .ArgumentError: сопоставленный класс LeaseInfo-> lease_info не смог собрать какие-либо столбцы первичного ключа для сопоставленной таблицы lease_info
Когда я использую следующий код для доступа к классам:
Base = automap_base()
Base.prepare(db.engine, reflect = True)
LeaseInfo = Base.classes.lease_info
Я получаю следующую ошибку: строка 212, в __getattr__ поднять AttributeError (key) AttributeError: lease_info
Я видел предложения, в которых говорится, что я сначала определяю классы со всеми столбцами, а затем добавляю их с помощью to_ sql, но я хочу уметь делать это более динамично.