У меня запущен демон, который генерирует данные и записывает их в мою базу данных с помощью Flask. Сейчас я создаю службу API на основе тех же данных и надеюсь повторно использовать те же модели, но, похоже, это не работает должным образом. Вот как выглядит код моей модели:
from sqlalchemy import BigInteger, Column, DateTime, Float, ForeignKey, Index, Integer, String
from sqlalchemy.orm import relationship
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
metadata = Base.metadata
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String(200), nullable=False, unique=True)
...
Но затем, когда я пытаюсь вызвать его из приложения Flask:
from flask.ext.sqlalchemy import SQLAlchemy
from models import User
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'some_mysql_connect_str'
db = SQLAlchemy(app)
...
def get_users_named_bob():
return User.query.filter_by(name='bob')
Я получаю: AttributeError: type object 'User' has no attribute 'query'
Как лучше всего это сделать?
Примечание: я видел этот вопрос примерно год назад, но я надеюсь, что с тех пор все стало лучше, так как это кажется распространенным вариантом использования.