[점프 투 플라스크] p.124 페이징 기능 구현

페이징은 paginate 함수를 사용하여 쉽게 구현할 수 있다고 되어있습니다.
근데 아래 코드를 보게되면

(... 생략 ...)
@bp.route('/list/')
def _list():
    page = request.args.get('page', type=int, default=1)  # 페이지
    question_list = Question.query.order_by(Question.create_date.desc())
    question_list = question_list.paginate(page, per_page=10)
    return render_template('question/question_list.html', question_list=question_list)

question_list = question_list.paginate(page, per_page=10)
이 코드에서 question_list의 속성?으로 paginate함수가 사용되는건가요? 이 코드의 구조가 이해가 안가는거 같습니다.
그리고 paginate로 인해서 question_list가 객체가 된다고 했는데 이렇게 코드로 작성되어 있는거 보면 이미 question_list가
객체인거 아닌가요?? 헷갈리는데 답변 부탁드립니다ㅠㅜ

sksgusxor 629

2021년 12월 24일 3:01 오후

목록으로
1개의 답변이 있습니다. 1 / 1 Page

처음의 question_list 는 SQLAlchemy의 쿼리 결과에 대한 객체이구요, 두번째 question_list는 쿼리 결과 객체의 paginate 함수를 호출하여 얻은 페이징 객체가 됩니다.

박응용

2021년 12월 24일 7:40 오후

question_list라는 객체에는 기본적으로 paginate라는 함수가 정의되어 있는건가요? 학습을 하면서 의문점이 생기는 부분이 있습니다! 책에 나와있는 내용을 보면서 따라해보고 있긴하지만 코드에 해석이 힘든 경우가 있습니다. 예를들면 코드에 대한 설명이 적혀있지만 어떤 형식으로 저렇게 사용할 수 있는건지 만약 제가 직접 사용하는 기능을 찾아서 하려면 어떻게 해야하는지 등 판단하는게 어려운거 같습니다. 일단은 그래도 따라하면서 코드의 의미를 설명해주신 내용대로 끼워맞추면서 가는게 맞는지 궁금합니다! - sksgusxor님, 2022년 1월 4일 2:22 오후 추천 , 대댓글
@sksgusxor님 네, 자세한 내용은 다음 URL을 참고해 주세요. 궁금하거나 이해 안가는 부분은 지금 하시는것처럼 좀 더 찾아보시는게 좋은 학습방법인것 같습니다. 책에도 좀 더 접근할 수 있는 링크나 설명을 추가해 보겠습니다. https://flask-sqlalchemy.palletsprojects.com/en/2.x/api/#flask_sqlalchemy.BaseQuery.paginate - 박응용님, 2022년 1월 4일 2:55 오후 추천 , 대댓글
@박응용님 이런한 정보를 찾아가면서 하는게 좋겠군요 공유 감사합니다!! ;) - sksgusxor님, M 2022년 1월 4일 9:55 오후 추천 , 대댓글