Flask_SQLAlchemy Не может отразить базу данных как SQLAlchemy - PullRequest
2 голосов
/ 09 мая 2019

Я пытаюсь подключить базу данных 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 Библиотеки, кто-то может помочь?

1 Ответ

0 голосов
/ 10 мая 2019

не используйте Flask_SQLAlchemy и используйте обычный SQLAlchemy

...