2013-08-23 1 views
4

플라스크 및 sqlalchemy가 완전히 새롭습니다. 플라스크를 더 잘 이해하기 위해 하나의 웹 사이트를 만들려고합니다. 많은 자습서가 있으며 대부분 sqlite를 사용합니다. 내 목적을 위해 나는 포스트그레스를 사용한다. 페이지 매김을 사용할 수있는 페이지가 필요합니다. 그러나 모든 시간 나는 그때 get_or_404와Sqlalchemy가 페이지 매기기와 작동하지 않습니다.

users = User.query.paginate(1, 5, False) 

동일한 오류 페이지를 매기는 사용

uri = os.environ.get('DATABASE_URL', 'postgres://login:[email protected]/db_name') 
engine = create_engine(uri, convert_unicode=True) 
db_session = scoped_session(sessionmaker(autocommit=False, 
        autoflush=False, 
        bind=engine)) 

Base = declarative_base() 
Base.query = db_session.query_property()  

간단한 모델 내 데이터베이스

AttributeError: 'Query' object has no attribute 'paginate' 

class User(Base): 
    __tablename__ = 'user' 

    id = Column(Integer, primary_key=True, autoincrement=True) 
    name = Column(Unicode(100), nullable=False) 
    ... 

을 오류를 얻고있다() 및 first_or_404(). 평소대로 정상적으로 또는 처음으로 작동합니다.

나는 어떤 조언을 주셔서 감사합니다!

답변

2

당신은 SQLAlchemy의에서 제공하는 질의 객체에 paginate()를 호출하지만 매김 기능은 get_or_404()first_or_404() 방법을 포함하여이 및 기타 기능을 추가 할 수있는 기본 쿼리 개체를, 서브 클래스 플라스크-SQLAlchemy의,에서만 사용할 수 있습니다 당신 또한 작동하지 않는 것으로 나타났습니다.

이 모든 것은 Flask-SQLAlchemy에서 제공하는 기능을 사용하는 대신 SQLAlchemy를 사용하여 데이터베이스와 모델을 직접 작성했기 때문에 발생합니다. Flask-SQLAlchemy documentation에 따라 이렇게하면 모든 것이 잘 작동한다는 것을 알 수 있습니다.

+0

도 같은 문제에 직면하고 있으므로 sqlalchemy 대신 'Flask-SQLAlchemy'를 사용하여 모델을 만들어야합니까 ?? 페이지 매김을 달성하기 위해 – kartheek

+0

SQLAlchemy로 페이지 매김을 어떻게 작동 시키나요? 도와주세요. – Hussain

+0

@Hussain :'limit()'과'offset()'질의 변경자를 사용하여 결과의 ​​서브 세트를 요청할 수 있습니다. – Miguel