반응형
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
{% extends 'base.html' %}
{% block content %}
<div class="container my-3">
<table calss="table" width="100%">
<thead >
<tr class="bg-dark text-white">
<th> 번호 </th>
<th> 제목 </th>
<th> 작성일시 </th>
</tr>
</thead>
<tbody>
{% if question_list %}
{% for question in question_list.items %}
<tr>
<td>{{ question_list.total - ((question_list.page-1) * question_list.per_page) - loop.index0 }}</td>
<td>
<a href="{{ url_for('question.detail', question_id=question.id) }}">{{question.subject}}</a>
{% if question.answer_set|length > 0 %}
<span class="text-danger small">{{ question.answer_set|length }}</span>
{% endif %}
</td>
<td>{{ question.create_date|datetime }}</td>
</tr>
{% endfor %}
{% else %}
<tr>
<td colspan="3"> 질문이 없습니다. </td>
</tr>
{% endif %}
</tbody>
</table>
<!-- 페이징 -->
<nav aria-label="Page navigation example">
<ul class="pagination pagination-sm my-5 justify-content-center">
<!-- 이전 페이징 구현 (이전 페이지 있을시)-->
{% if question_list.has_prev %}
<li class="page-item">
<a class="page-link" href="?page={{ question_list.prev_num }}">이전</a>
</li>
<!-- 이전 페이지가 없을 시 -->
{% else %}
<li class="page-item disabled">
<a class="page-link" href="">이전</a>
</li>
{% endif %}
<!-- 중간 페이징 -->
{% for page_num in question_list.iter_pages() %}
{% if page_num %}
{% if page_num != question_list.page %}
<li class="page-item">
<a class="page-link" href="?page={{ page_num }}">{{ page_num }}</a>
</li>
{% else %}
<li class="page-item active" aria-current="page">
<a class="page-link" href="#">{{ page_num }}</a>
</li>
{% endif %}
{% else %}
<li class="disabled">
<a class="page-link" href="#">...</a>
</li>
{% endif %}
{% endfor %}
<!-- 다음 페이징 구현 (다음 페이지가 있는 경우_ -->
{% if question_list.has_next %}
<li class="page-item">
<a class="page-link" href="?page={{ question_list.next_num }}">다음</a>
</li>
<!-- 다음 페이지 없는 경우 -->
{% else %}
<li class="page-item disabled">
<a class="page-link" tabindex="-1" aria-disabled="true" href="#">다음</a>
</li>
{% endif %}
</ul>
</nav>
</ul>
<a href="{{ url_for('question.create') }}" class="btn btn-primary"> 질문 등록하기 </a>
</div>
{% endblock %}
</body>
</html>
question_list.html 입니다.
{% if question.answer_set|length > 0 %}
<span class="text-danger small">{{ question.answer_set|length }}</span>
{% endif %}
답변의 갯수가 0개 초과라면 그만큼의 댓글 개수를 출력합니다.
반응형
'플라스크 (추후 수정)' 카테고리의 다른 글
Flask 로그인, 로그아웃 check_pass_word_hash, g, session, @bp.before_app_request (0) | 2021.08.16 |
---|---|
Flask 회원가입기능 추가 generate_password_hash, query.filter_by (0) | 2021.08.15 |
Flask 게시물 번호 바꾸기 (0) | 2021.08.14 |
Flask 필터 적용하기 strftime, jinja_env.filters (0) | 2021.08.14 |
Flask 페이징 (0) | 2021.08.14 |