Django5 分頁

urls

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('',include("App.urls"))
]

App.urls

from django.urls import path

from App import views
app_name = 'App'
urlpatterns = [
    # 分頁
    path('page/',views.fenye, name='page'),
    path('page/<int:page>/',views.fenye, name='page'),
]

App.views

from App.models import User
from django.shortcuts import render
from django.core.paginator import Paginator

def fenye(request,page=1):
    users = User.objects.all()
    # 產生分頁器
    paginator = Paginator(users,10)
    # 分頁對象
    # page表示當前頁
    pager = paginator.page(page)
    for user in paginator.object_list:
        print(user,type(user))
    return render(request,"userlist.html",locals())

App.models

from django.db import models

class User(models.Model):
    uid = models.AutoField(primary_key=True)
    username = models.CharField(unique=True, max_length=30)
    password = models.CharField(max_length=128)
    regtime = models.DateTimeField(auto_now_add=True)

    class Meta:
        db_table = 'user'

    def __str__(self):
        return self.username + str(self.uid)

userlist.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<table border="1" cellspacing="0" width="80%">
    <tr>
        <td>用戶名</td>
        <td>密碼</td>
    </tr>
    {% for user in pager.object_list %}
        <tr>
            <td>{{ user.username }}</td>
            <td>{{ user.password }}</td>
        </tr>
    {% endfor %}
</table>
<div>
{#    paginator.page_range 頁碼列表   #}
    {% for page in paginator.page_range %}
        <a href="{% url 'App02:page' page=page %}">{{ page }}</a>
    {% endfor %}
</div>
</body>
</html>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章