페이지네이션은 웹 개발에서 매우 중요한 기능 중 하나입니다. Flask 프레임워크를 사용하여 페이지네이션을 구현하는 방법을 알아보겠습니다.
Flask란?
Flask는 파이썬으로 작성된 마이크로 웹 프레임워크입니다. 간결하고 가볍기 때문에 많은 개발자들이 선호하며, 확장성도 높습니다. Flask는 페이지네이션을 구현하기에도 적합한 프레임워크입니다.
페이지네이션 기능 구현하기
Flask에서 페이지네이션을 구현하기 위해서는 다음과 같은 단계를 따를 수 있습니다.
-
필요한 의존성 설치하기
Flask에서 페이지네이션을 구현하기 위해Flask-Paginate
패키지를 설치해야 합니다. 아래의 명령을 사용하여 패키지를 설치합니다.pip install Flask-Paginate
-
Flask-Paginate 설정하기
Flask-Paginate를 사용하기 위해 Flask 애플리케이션에 다음과 같이 설정을 추가해야 합니다.from flask_paginate import Pagination, get_page_parameter app.config['PER_PAGE'] = 10
-
데이터베이스에서 페이지네이션 구현하기
Flask-Paginate를 사용하여 데이터베이스에서 페이지네이션을 구현하려면 다음과 같은 코드를 사용할 수 있습니다.from flask_paginate import Pagination, get_page_parameter @app.route('/') def index(): page = request.args.get(get_page_parameter(), type=int, default=1) per_page = app.config['PER_PAGE'] total = len(data) # 총 데이터 개수 pagination = Pagination(page=page, per_page=per_page, total=total, record_name='data') offset = (page - 1) * per_page data_subset = data[offset:offset + per_page] return render_template('index.html', data=data_subset, pagination=pagination)
위의 예시 코드에서
data
는 페이지네이션을 적용할 데이터 리스트입니다. -
템플릿에서 페이지네이션 구현하기
페이지네이션을 위한 템플릿 파일(index.html
)에서는 다음과 같이 페이지 링크를 생성할 수 있습니다.<div class="pagination"> {% if pagination.has_prev %} <a href="{{ url_for('index', page=pagination.prev_page) }}">Previous</a> {% endif %} {% for page_num in pagination.iter_pages() %} {% if page_num %} {% if page_num == pagination.page %} <span class="current-page">{{ page_num }}</span> {% else %} <a href="{{ url_for('index', page=page_num) }}">{{ page_num }}</a> {% endif %} {% else %} <span class="ellipsis">…</span> {% endif %} {% endfor %} {% if pagination.has_next %} <a href="{{ url_for('index', page=pagination.next_page) }}">Next</a> {% endif %} </div>
위의 코드는 페이징된 페이지 번호 리스트를 생성하고, 이전/다음 버튼을 링크로 연결합니다. 페이지 번호를 클릭하면 해당 페이지로 이동합니다.
결론
Flask를 사용하여 페이지네이션을 간단하게 구현할 수 있습니다. Flask-Paginate 패키지는 효율적인 페이지네이션을 제공하며, 편리한 템플릿 작성을 도와줍니다. 페이지네이션은 사용자 경험을 향상시키고 대량의 데이터를 처리할 때 유용합니다. Flask를 통해 웹 애플리케이션을 개발하면서 페이지네이션을 구현하는 방법을 익혀보세요.