views.py
from mysite.models import student
from django.core.paginator import Paginator
from django.core.paginator import EmptyPage
from django.core.paginator import PageNotAnInteger
# Create your views here.
def getdata(request):
limit = 5 # 每頁顯示的筆數
students = student.objects.all()
paginator = Paginator(students, limit)
page = request.GET.get('page') # 獲取頁碼
try:
students = paginator.page(page) # 獲取該頁的資料
except PageNotAnInteger: # 如果頁碼不是個整數
students = paginator.page(1) # 取第一頁的資料
except EmptyPage: # 如果頁碼過大,没有相對的資料
students = paginator.page(paginator.num_pages) # 取最後一頁的資料
return render(request,'getdata.html', {'students': students})
getdata.html
{% for s in students.object_list %}
<tr>
<th scope="row">{{s.id}}</th>
<td>{{s.cName}}</td>
<td>{{s.cSex}}</td>
<td>{{s.cBirthday}}</td>
<td>{{s.cEmail}}</td>
<td>{{s.cPhone}}</td>
<td>{{s.cAddr}}</td>
</tr>
{% endfor %}
<p>
{# students.paginator.page_range 這個函式返回包含一個所有頁碼數的 range 對象 #}
{# 即 range(1, students.paginator.num_pages + 1) #}
<ul class="pagination">
{% if students.has_previous %} {#如果有上一頁就創建#}
<li class="page-item"><a class="page-link" href="?page={{ students.previous_page_number }}">上一頁</a></li>
{% endif %}
{% for page_number in students.paginator.page_range %}
{% ifequal page_number students.number %}
<li class="page-item"><a class="page-link active" href="">{{ page_number }}</a></li>
{% else %}
<li class="page-item"><a class="page-link" href="?page={{ page_number }}">{{ page_number }}</a></li>
{% endifequal %}
{% endfor %}
{% if students.has_next %} {#如果有下一頁就創建#}
<li class="page-item"><a class="page-link" href="?page={{ students.next_page_number }}">下一頁</a></li>
{% endif %}
</ul>
</p>
  陳杰龍的筆記網站
  主頁
  歸檔
  分類
  其他
  關於我