Я пытаюсь подключить базу данных Foreigner к приложению python-Flask
, используя Flask_SQLALchemy
Я посмотрел везде, включая официальный документ FLASK_SQLALCHEMY
Последние 4 дня я всюду искал в Интернете любой учебник, в котором есть библиотека FLASK_SQLALCHEMY
в ORM
без удачи
Я продолжал просматривать документ SQLAlchemy Reflecting , но я не понял, что делать дальше
вот мой код колбы:
Base = automap_base()
xDB = 'postgres://****'
engine = db.create_engine(xDB)
metadata = db.MetaData()
Session = db.sessionmaker(bind=engine)
session = db.scoped_session(engine)
Base.metadata.reflect(engine)
y = [db.Table(table,metadata,autoload=True,autoload_with=engine) for
table in engine.table_names()]
Я пытался делать запросы разными способами, основываясь на том, что прочитал во многих источниках, с которыми ни один из них не работал Flask_SQLAlchemy
попытка № 1:
t = db.select('test1').limit(10)
engine.execute(t).fetchall()
вывод:
t = ВЫБРАТЬ test1.id, test1.name
ОТ test1
LIMIT: param_1
попытка № 2:
t = db.session.query([test1])
выход:
sqlalchemy.exc.InvalidRequestError: ожидалось выражение SQL, столбец или сопоставленная сущность - получено '[Table (' test1 ', MetaData (bind = None), Column (' id ', INTEGER (), table =, nullable = False, server_default = DefaultClause (, for_update = False)), столбец ('name', VARCHAR (), table =, nullable = False), схема = None)] '
я думал, что это уже сопоставлено .. с autoLoad = True
, Base = automap_base()
и Base.metadata.reflect(engine)
попытка № 3:
t = metadata.tables['test1']
выход:
KeyError: Table ('test1', MetaData (bind = None), Column ('id', INTEGER (), table =, nullable = False, server_default = DefaultClause (, for_update = False)), Column ('name ', VARCHAR (), table =, nullable = False), схема = None)
что я не понимаю, их metadata
уже определено как metadata = db.MetaData()
Я не могу найти что-то для Flask_SQLAlchemy, старого или нового, но я вижу некоторые ресурсы для SQLAlchemy, которые не работают для Flask_SQLAlchemy
Библиотеки, кто-то может помочь?