Heim Backend-Entwicklung Python-Tutorial Django-Einführung in Paging-Beispiele

Django-Einführung in Paging-Beispiele

Jun 27, 2017 am 09:54 AM
django 分页 自定义

Die Paging-Funktion ist auf jeder Website erforderlich. Beim Paging dient sie eigentlich dazu, die Startposition der Daten zu berechnen, die auf der Seite in der Datenbanktabelle basierend auf den Eingaben des Benutzers angezeigt werden sollen.

Bestimmen Sie die Paging-Anforderungen:

1. 每页显示的数据条数
2. 每页显示页号链接数
3. 上一页和下一页
4. 首页和末页
Nach dem Login kopieren

Rendering:

Verwenden Sie zunächst das integrierte Paging von Django Funktion, schreiben Sie die Paging-Klasse:

 1 from django.core.paginator import Paginator, Page      # 导入django分页模块 2  3  4 class PageInfo(object): 5     def __init__(self, current_page, all_count, base_url, per_page=10, show_page=11): 6         """ 7  8         :param current_page: 当前页 9         :param all_count: 总页数10         :param base_url: 模板11         :param per_page: 每页显示数据条数12         :param show_page: 显示链接页个数13         """14         #若url错误,默认显示第一页(错误类型可能为:空页面编号,非整数型页面编号)15         try:16             self.current_page = int(current_page)17         except Exception as e:18             self.current_page = 119         20         #根据数据库信息条数得出总页数            21         a, b = divmod(all_count, per_page)22         if b:23             a += 124         self.all_page = a   
25         26         self.base_url = base_url27         self.per_page = per_page28         self.show_page = show_page29 30     #当前页起始数据id31     def start_data(self):       
32         return (self.current_page - 1) * self.per_page33 34     #当前页结束数据id35     def end_data(self):     
36         return self.current_page * self.per_page37     38     #动态生成前端html39     def pager(self):40         page_list = []41         half = int((self.show_page - 1)/2)42         #如果:总页数 < show_page,默认显示页数范围为: 1~总页数43         if self.all_page < self.show_page:44             start_page = 145             end_page = self.all_page + 146         #如果:总页数 > show_page47         else:48             #如果:current_page - half <= 0,默认显示页数范围为:1~show_page49             if self.current_page <= half:50                 start_page = 151                 end_page = self.show_page + 152             else:53                 #如果:current_page + half >总页数,默认显示页数范围为:总页数 - show_page ~ 总页数54                 if self.current_page + half > self.all_page:55                     end_page = self.all_page + 156                     start_page = end_page - self.show_page57                 else:58                     start_page = self.current_page - half59                     end_page = self.current_page + half + 160 61         #首页62         first_page = "<li><a href=&#39;%s?page=%s&#39;>首页</a></li>" %(self.base_url, 1)63         page_list.append(first_page)64 65         #上一页(若当前页等于第一页,则上一页无链接,否则链接为当前页减1)66         if self.current_page <= 1:67             prev_page = "<li><a href=&#39;#&#39;>上一页</a></li>"68         else:69             prev_page = "<li><a href=&#39;%s?page=%s&#39;>上一页</a></li>" %(self.base_url, self.current_page-1)70         page_list.append(prev_page)71 72         #动态生成中间页数链接73         for i in range(start_page, end_page):74             if i == self.current_page:75                 temp = "<li class=&#39;active&#39;><a href=&#39;%s?page=%s&#39;>%s</a></li>" %(self.base_url, i, i)76             else:77                 temp = "<li><a href=&#39;%s?page=%s&#39;>%s</a></li>" % (self.base_url, i, i)78             page_list.append(temp)79 80         #下一页(若当前页等于最后页,则下一页无链接,否则链接为当前页加1)81         if self.current_page >= self.all_page:82             next_page = "<li><a href=&#39;#&#39;>下一页</a></li>"83         else:84             next_page = "<li><a href=&#39;%s?page=%s&#39;>下一页</a></li>" %(self.base_url, self.current_page+1)85         page_list.append(next_page)86 87         #末页(若总页数只有一页,则无末页标签)88         if self.all_page > 1:89             last_page = "<li><a href=&#39;%s?page=%s&#39;>末页</a></li>" % (self.base_url, self.all_page)90             page_list.append(last_page)91 92         return ''.join(page_list)
Nach dem Login kopieren

Schreiben Sie dann die Methode in Ansichten (hier in app01 geschrieben):

1 from utils.pagnition import PageInfo    # 从文件中导入上步自定义的分页模块2 3 def custom(request):4     all_count = models.UserInfo.objects.all().count()   # 获取要显示数据库的总数据条数5     page_info = PageInfo(request.GET.get('page'), all_count, '/custom.html/',)      # 生成分页对象6     user_list = models.UserInfo.objects.all()[page_info.start_data():page_info.end_data()]      # 利用分页对象获取当前页显示数据7     return render(request, 'custom.html', {'user_list': user_list, 'page_info': page_info})     # 模板渲染
Nach dem Login kopieren

Dann schreiben Sie die Datei „custom.html“ in das Vorlagenverzeichnis:

 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4     <meta charset="UTF-8"> 5     <title>customers</title> 6 {#    引入bootstrap样式#} 7     <link rel="stylesheet" href="/static/plugins/bootstrap-3.3.7-dist/css/bootstrap.css?1.1.11"> 8 </head> 9 <body>10 <h1>customers</h1>11 {#当前页显示的数据#}12 <ul>13     {% for row in user_list %}14         <li>{{ row.name }}</li>15     {% endfor %}16 </ul>17 18 {#分页#}19     <nav aria-label="Page navigation">20       <ul class="pagination">21 {#                传入page_info.pager#}22           {{ page_info.pager|safe }}23       </ul>24     </nav>25 26 </body>27 </html>
Nach dem Login kopieren

Zum Schluss fügen Sie die URL-Beziehung (urls.py) hinzu:

1 from django.conf.urls import url2 from django.contrib import admin3 from app01 import views as app01_views4 5 urlpatterns = [6     url(r'^custom.html/$', app01_views.custom),7 ]
Nach dem Login kopieren

An diesem Punkt haben Sie die Anpassung des Paging-Moduls mithilfe der Paging-Funktion von Django abgeschlossen, die auf verschiedene Unternehmensseiten angewendet werden kann.

Referenzmaterialien:

1. Der Weg zu Python [Teil 17]: Django [Kapitel für Fortgeschrittene]

Das obige ist der detaillierte Inhalt vonDjango-Einführung in Paging-Beispiele. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So richten Sie schnell einen benutzerdefinierten Avatar in Netflix ein So richten Sie schnell einen benutzerdefinierten Avatar in Netflix ein Feb 19, 2024 pm 06:33 PM

Ein Avatar auf Netflix ist eine visuelle Darstellung Ihrer Streaming-Identität. Benutzer können über den Standard-Avatar hinausgehen, um ihre Persönlichkeit auszudrücken. Lesen Sie diesen Artikel weiter, um zu erfahren, wie Sie in der Netflix-App ein benutzerdefiniertes Profilbild festlegen. So legen Sie schnell einen benutzerdefinierten Avatar in Netflix fest. In Netflix gibt es keine integrierte Funktion zum Festlegen eines Profilbilds. Sie können dies jedoch tun, indem Sie die Netflix-Erweiterung in Ihrem Browser installieren. Installieren Sie zunächst ein benutzerdefiniertes Profilbild für die Netflix-Erweiterung in Ihrem Browser. Sie können es im Chrome Store kaufen. Öffnen Sie nach der Installation der Erweiterung Netflix in Ihrem Browser und melden Sie sich bei Ihrem Konto an. Navigieren Sie zu Ihrem Profil in der oberen rechten Ecke und klicken Sie

Django vs. Flask: Eine vergleichende Analyse von Python-Web-Frameworks Django vs. Flask: Eine vergleichende Analyse von Python-Web-Frameworks Jan 19, 2024 am 08:36 AM

Django und Flask sind beide führend bei Python-Web-Frameworks und haben beide ihre eigenen Vorteile und anwendbaren Szenarien. In diesem Artikel wird eine vergleichende Analyse dieser beiden Frameworks durchgeführt und spezifische Codebeispiele bereitgestellt. Entwicklungseinführung Django ist ein Web-Framework mit vollem Funktionsumfang, dessen Hauptzweck darin besteht, schnell komplexe Webanwendungen zu entwickeln. Django bietet viele integrierte Funktionen wie ORM (Object Relational Mapping), Formulare, Authentifizierung, Verwaltungs-Backend usw. Diese Funktionen ermöglichen es Django, große Mengen zu verarbeiten

So passen Sie die Tastenkombinationseinstellungen in Eclipse an So passen Sie die Tastenkombinationseinstellungen in Eclipse an Jan 28, 2024 am 10:01 AM

Wie kann ich die Tastenkombinationseinstellungen in Eclipse anpassen? Als Entwickler ist die Beherrschung von Tastenkombinationen einer der Schlüssel zur Effizienzsteigerung beim Codieren in Eclipse. Als leistungsstarke integrierte Entwicklungsumgebung bietet Eclipse nicht nur viele Standard-Tastenkombinationen, sondern ermöglicht Benutzern auch, diese nach ihren eigenen Vorlieben anzupassen. In diesem Artikel wird erläutert, wie Sie die Tastenkombinationseinstellungen in Eclipse anpassen, und es werden spezifische Codebeispiele gegeben. Öffnen Sie Eclipse. Öffnen Sie zunächst Eclipse und geben Sie ein

Vor- und Nachteile des Django Framework: Alles, was Sie wissen müssen Vor- und Nachteile des Django Framework: Alles, was Sie wissen müssen Jan 19, 2024 am 09:09 AM

Django ist ein vollständiges Entwicklungsframework, das alle Aspekte des Webentwicklungslebenszyklus abdeckt. Derzeit ist dieses Framework eines der beliebtesten Web-Frameworks weltweit. Wenn Sie vorhaben, mit Django Ihre eigenen Webanwendungen zu erstellen, müssen Sie die Vor- und Nachteile des Django-Frameworks verstehen. Hier finden Sie alles, was Sie wissen müssen, einschließlich spezifischer Codebeispiele. Vorteile von Django: 1. Schnelle Entwicklung – Djang kann Webanwendungen schnell entwickeln. Es bietet eine umfangreiche Bibliothek und interne

Der Betriebsprozess des benutzerdefinierten Bildschirmlayouts von edius Der Betriebsprozess des benutzerdefinierten Bildschirmlayouts von edius Mar 27, 2024 pm 06:50 PM

1. Das Bild unten zeigt das Standard-Bildschirmlayout von edius. Das Standard-EDIUS-Fensterlayout ist ein horizontales Layout. Daher überlappen sich viele Fenster und das Vorschaufenster befindet sich im Einzelfenstermodus. 2. Sie können den [Dual Window Mode] über die Menüleiste [View] aktivieren, damit das Vorschaufenster gleichzeitig das Wiedergabefenster und das Aufnahmefenster anzeigt. 3. Sie können das Standard-Bildschirmlayout über [Ansichtsmenüleiste > Fensterlayout > Allgemein] wiederherstellen. Darüber hinaus können Sie auch das für Sie passende Layout anpassen und es als häufig verwendetes Bildschirmlayout speichern: Ziehen Sie das Fenster auf ein für Sie passendes Layout, klicken Sie dann auf [Ansicht > Fensterlayout > Aktuelles Layout speichern > Neu] und klicken Sie auf „Ansicht > Fensterlayout > Aktuelles Layout speichern > Neu“. Popup [Aktuelles Layout speichern] Layout] Geben Sie den Layoutnamen in das kleine Fenster ein und klicken Sie auf OK

So aktualisieren Sie die Django-Version: Schritte und Überlegungen So aktualisieren Sie die Django-Version: Schritte und Überlegungen Jan 19, 2024 am 10:16 AM

So aktualisieren Sie die Django-Version: Schritte und Überlegungen, spezifische Codebeispiele erforderlich. Einführung: Django ist ein leistungsstarkes Python-Web-Framework, das kontinuierlich aktualisiert und aktualisiert wird, um eine bessere Leistung und mehr Funktionen bereitzustellen. Für Entwickler, die ältere Versionen von Django verwenden, kann die Aktualisierung von Django jedoch einige Herausforderungen mit sich bringen. In diesem Artikel werden die Schritte und Vorsichtsmaßnahmen zum Aktualisieren der Django-Version vorgestellt und spezifische Codebeispiele bereitgestellt. 1. Sichern Sie die Projektdateien, bevor Sie Djan aktualisieren

Wie kann ich die X- und Y-Achse in Excel anpassen? (So ​​passen Sie die Skala der Excel-Koordinatenachse an) Wie kann ich die X- und Y-Achse in Excel anpassen? (So ​​passen Sie die Skala der Excel-Koordinatenachse an) Mar 14, 2024 pm 02:10 PM

In einer Excel-Tabelle müssen Sie manchmal Koordinatenachsen einfügen, um den sich ändernden Trend der Daten intuitiver zu erkennen. Einige Freunde wissen immer noch nicht, wie man Koordinatenachsen in die Tabelle einfügt. Als nächstes werde ich Ihnen zeigen, wie Sie die Koordinatenachsenskala in Excel anpassen. Methode zum Einfügen der Koordinatenachse: 1. Wählen Sie in der Excel-Oberfläche die Daten aus. 2. Klicken Sie in der Einfügeoberfläche auf , um ein Säulendiagramm oder Balkendiagramm einzufügen. 3. Wählen Sie in der erweiterten Oberfläche den Grafiktyp aus. 4. Klicken Sie in der Rechtsklick-Oberfläche der Tabelle auf Daten auswählen. 5. In der erweiterten Benutzeroberfläche können Sie sie anpassen.

Ist Django Front-End oder Back-End? Hör zu! Ist Django Front-End oder Back-End? Hör zu! Jan 19, 2024 am 08:37 AM

Django ist ein in Python geschriebenes Webanwendungs-Framework, das Wert auf schnelle Entwicklung und saubere Methoden legt. Obwohl Django ein Web-Framework ist, müssen Sie zur Beantwortung der Frage, ob Django ein Front-End oder ein Back-End ist, ein tiefes Verständnis der Konzepte von Front-End und Back-End haben. Das Front-End bezieht sich auf die Schnittstelle, mit der Benutzer direkt interagieren, und das Back-End bezieht sich auf serverseitige Programme. Sie interagieren mit Daten über das HTTP-Protokoll. Wenn das Front-End und das Back-End getrennt sind, können die Front-End- und Back-End-Programme unabhängig voneinander entwickelt werden, um Geschäftslogik bzw. interaktive Effekte sowie den Datenaustausch zu implementieren.

See all articles