【发布时间】:2014-07-08 20:07:26
【问题描述】:
我有一个守护进程正在运行,它生成数据并使用 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'
最好的方法是什么?
旁注:大约一年前我看到了this question,但我希望从那以后情况会好转,因为这似乎是一个常见的用例。
【问题讨论】:
标签: python flask sqlalchemy flask-sqlalchemy