程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Django15: pagination

編輯:Python

1、Définition

        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.

2、Paginator

        Responsable de la gestion globale des données pagées.

(1)PaginatorMéthode de construction de l'objet:

paginator = Paginator(object_list, per_page)

Paramètres:

  • object_list:Liste des objets nécessitant des données pagées
  • per_page:Nombre de données par page

Valeur de retour:

PaginatorObjet de

(2)PaginatorPropriétés

  • count:Nombre total d'objets nécessitant des données de pagination
  • num_pages:Nombre total de pages pagées
  • page_range:De1Au débutrangeObjet,Utilisé pour enregistrer le nombre actuel de codes
  • per_page:Nombre de données par page

(3)pagintorObjet.page(number)

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:

  • PageNotAnlnteger:Quandpage() Lancé en passant une valeur qui n'est pas un entier .
  • EmptyPage:Quandpage() Fournir une valeur valide , Mais quand il n'y a pas d'objet sur cette page

3、pageObjet

(1)Définition

         Responsable de la gestion des données d'une page .

(2)Créer un objet

        PaginatorObjetpage()Retour de la méthodepageObjet.

page = Paginator.page(Nombre de pages)

(3)PagePropriétés de l'objet

  • object_list:Liste de tous les objets de données de la page courante
  • number:Numéro de série de la page courante,De1C'est parti.
  • paginator:En courspageObjetPaginatorObjet

(4)PageMéthode objet

  • has_next():Si la page suivante est retournéeTrue
  • has_previout():Si la page précédente est retournéeTrue
  • has_other_pages(): Si une page précédente ou suivante est retournée True
  • next_page_number():Renvoie le numéro de page de la page suivante,Si la page suivante n'existe pas,JetezInvalidPageAnomalie
  • previous_page_number():Renvoie le numéro de page de la page précédente,Si la page précédente n'existe pas,JetezInvalidPageAnomalie

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


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved