Недавно я хотел разработать свой собственный интерфейс, похожий на админку, из интерфейса Django для моего Flask приложения. Я использую flask -sqlalchemy для взаимодействия с моей базой данных postgres. Скажем, у меня есть такая модель
class User(db.Model):
__tablename__ = "users"
id = db.Column(db.Integer, primary_key=True)
user_name = db.Column(db.String, unique=True, nullable=False)
password = db.Column(db.String, nullable=False)
На первом этапе я хотел запросить все имена столбцов и их строки из этой таблицы, что возможно
column_names = User.__table__.columns.keys()
records = User.query.all()
Это дает мне список всех имен столбцов и список списков всех объектов, созданных для этой таблицы. И я могу получить доступ к данным объекта как
records[0].id
records[0].user_name
Но когда я сохраняю имена моделей таблиц в списке и пытаюсь получить имена столбцов и их записи динамически с помощью l oop, я не могу получить доступ к данным внутри объектов.
#This is my actual code
#Inside tables list, the items are Model objects not strings
tables = [User, Account, Role]
for table in tables:
#Column names -- This fetches column names correctly
columns = table.__table__.columns.keys()
for column in columns:
print(column,end=' ')
print()
#All records -- This returns nothing
for records in table.query.all():
#Single record
for record in records:
for i in range(len(columns)):
#Record accessed by its column name -- Doesn't work
print(record.column[i])
Все, что я получаю, - это ничего, хотя я думаю, что все должно работать нормально. Если я допустил какую-либо ошибку, пожалуйста, укажите мне направление, чтобы исправить ее. Если нет, то каков правильный способ доступа к данным (когда имена таблиц и столбцов создаются динамически)?
Любая помощь будет оценена. Кроме того, я не хочу, чтобы все эти данные передавались в мои шаблоны как другой объект, поскольку это добавляет больше времени на обработку, скорее мне нужен способ создания самих шаблонов для непосредственного извлечения записей. Заранее спасибо.