La pagination signifiewebLa page contient beaucoup de données à afficher,Pour faciliter la lecture, n'afficher qu'une partie des données sur chaque page.Les avantages sont la facilité de lecture et la réduction de la quantité de données extraites,Réduire la pression sur le serveur.
DjangoOffrePaginator.La classe peut facilement réaliser la fonction de pagination.PaginatorClasse à’django.core.paginator’Dans le module.
Responsable de la gestion globale des données pagées.
paginator = Paginator(object_list, per_page)
Paramètres:
Valeur de retour:
PaginatorObjet de
ParamètresnumberInformations sur le numéro de page(De1C'est parti.);
Renvoie le courantnumberInformations sur la page correspondant également;
Si le numéro de page fourni n'existe pas,JetezInvalidpageAnomalie,Contient deux sous - classes hétéromorphiques:
Responsable de la gestion des données d'une page .
PaginatorObjetpage()Retour de la méthodepageObjet.
page = Paginator.page(Nombre de pages)
Exemple:
(a)views.py
def test_page(request):
# /test_page/4
# /test_page?page=1
page_num = request.GET.get('page', 1)
all_data = ['a', 'b', 'c', 'd', 'e']
# Initialisationpaginator
paginator = Paginator(all_data, 2)
# Initialisation d'un numéro de page spécifique pageObjet
c_page = paginator.page(int(page_num))
return render(request, 'test_page.html', locals())
(b)urls.py
urlpatterns = [
path('admin/', admin.site.urls),
# path('test_mw/', views.test_mw),
path('test_csrf', views.test_csrf),
path('test_page', views.test_page),
]
(c)template.test_page
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Pagination</title>
</head>
<body>
<!-- <a href="/make_page_csv?page={
{ c_page.number }}">Générer</a> -->
{% for p in c_page %}
<p>{
{ p }}</p>
{% endfor %}
{% if c_page.has_previous %}
<a href="/test_page?page={
{ c_page.previous_page_number }}">Page précédente</a>
{% else %}
Page précédente
{% endif %}
{% for p_num in paginator.page_range %}
{% if p_num == c_page.number %}
{
{ p_num }}
{% else %}
<a href="/test_page?page={
{ p_num }}">{
{ p_num }}</a>
{% endif %}
{% endfor %}
{% if c_page.has_next %}
<a href="/test_page?page={
{ c_page.next_page_number }}">Page suivante</a>
{% else %}
Page suivante
{% endif %}
</body>
</html>
Accès à:http://192.168.28.128:8000/test_page
Because the recent test needs
First, we need to know what is