Итак, есть наимельчайший проект на Flask + SQLAlchemy.
App.py
from flask import Flask, render_template
from flask.ext.sqlalchemy import SQLAlchemy as SA
SQLALCHEMY_DATABASE_URI = 'mysql+mysqlconnector://user:pass@localhost:3306/app_db'
app = Flask(__name__)
db = SA(app)
from sqlalchemy import create_engine
engine = create_engine(SQLALCHEMY_DATABASE_URI)
db.metadata.reflect(engine)
from Classes import *
@app.route('/')
def get_index():
Users.query.all()
return 'Hello World!'
if __name__ == '__main__':
app.run(debug=True)
pass
Classes.py
from App import db
class Users(db.Model):
__table__ = db.metadata.tables['users']
SQLAlchemy явно правильно считывает метаданные из имеющейся базы на MySQL, однако при попытке обратиться к данным в Users.query.all() сетует на отсутствие такой таблицы, хотя за 10 строк до этого успешно считала структуру этой таблицы.
sqlalchemy.exc.OperationalError: (OperationalError) no such table: users 'SELECT users."UserId" AS "users_UserId", users."UserLogin" AS "users_UserLogin", users."UserPassword" AS "users_UserPassword", users."UserMail" AS "users_UserMail", users."UserType" AS "users_UserType" \nFROM users' ()
В дополнение к этому, если копнуть чуть вверх по стеку ошибок, видно что context.engine == Engine(sqlite://).