1. 페이지 만들기

# vim app/routes.py

# ...

@app.route('/user/<username>')  # 동적 구성 요소 <username>
@login_required
def user(username):
    # query all로 username에 맞는 값 가져오기 시도하여 성공하면 결과 가지고, 실패하면 404 >에러 페이지 출력
    user = User.query.filter_by(username=username).first_or_404()
    # 사용자 프로필 보기 기능에 페이지 매김 기능 추가
    page = request.args.get('page', 1, type=int)
    posts = user.posts.order_by(Post.timestamp.desc()).paginate(
        page, app.config['POSTS_PER_PAGE'], False)
    # 다음 페이지
    next_url = url_for('user', username=user.username, page=posts.next_num) \
        if posts.has_next else None
    # 이전 페이지
    prev_url = url_for('user', username=user.username, page=posts.prev_num) \
        if posts.has_prev else None
    return render_template('user.html', user=user, posts=posts.items,
                           next_url=next_url, prev_url=prev_url)
#    # posts에 출력될 데이터 넣기
#    posts = [
#        {'author': user, 'body': 'Test post #1'},
#        {'author': user, 'body': 'Test post #2'}
#    ]
#    # 성공하면 user 변수를 user에 넣고 posts 변수를 posts에 넣어 user.html 열기
#    return render_template('user.html', user=user, posts=posts)

# ...

app.config['POSTS_PER_PAGE'] 내용은 아래 config.py에서 설정해줄 예정입니다.

 

 

 

2. 사용자 프로필 템플릿에 페이지 매기기 링크 활성화

<!-- vim app/templates/user.html -->

<!-- ... -->

    {% for post in posts %}
        <!-- post 서브 템플릿 사용 -->
        {% include '_post.html' %}
    {% endfor %}
    <!-- 사용자 프로필 템플릿의 페이지 매김 링크 -->
    <!-- 이전 페이지와 다음 페이지 버튼 활성화 -->
    {% if prev_url %}
    <a href="{{ prev_url }}">Newer posts</a>
    {% endif %}
    {% if next_url %}
    <a href="{{ next_url }}">Older posts</a>
    {% endif %}
    
<!-- ... -->

 

 

 

3. POST PER PAGE 수치 설정

# vim config.py

class Config(object):

    # ...

    # 게시글 수 per 페이지 설정
    POSTS_PER_PAGE = 25

 

 

 

+ Recent posts