日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

django 打开的html css_Django分页完整示例

發布時間:2023/12/15 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 django 打开的html css_Django分页完整示例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
大家好,在這篇文章中,我們將展示django的分頁完整的一個實例,當我們打算用Django中開發博客時,需要將帖子列表分別展示到多個頁面上,在這方面,Django具有內置的分頁類,可管理分頁數據。所有分頁方法都使用Paginator類。它實際上是承擔將QuerySet拆分為Page對象的工作。在django中可以使用兩種方法進行分頁,第一種方法是使用基于函數的視圖,第二種方法是使用基于類的視圖。
現在,首先,需要使用此命令創建一個新的django項目。我稱這個項目為MyProjectdjango-admin startproject ProjectName首先,需要將目錄更改為已創建的項目,然后需要創建一個App,我將其稱為MyApp。python manage.py startapp MyApp另外,還需要在settings.py(INSTALLED_APPS)中添加新創建的應用。INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'MyApp']在此之后進行數據庫遷移:python manage.py migrate另外,還需要創建一個模板文件夾,因為我們需要向模板文件夾中添加一些html文件,請確保在創建模板文件夾后需要打開settings.py并將模板目錄添加到DIRS部分中,如下所示。TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['templates'],1:基于函數的視圖中的分頁
現在,首先,需要在應用程序中打開models.py文件并創建模型。from django.db import modelsfrom django.utils import timezone# Create your models here.class Post(models.Model): title = models.CharField(max_length=100) author = models.CharField(max_length=100) body = models.TextField() publish = models.DateTimeField(default=timezone.now()) def __str__(self): return self.title基本上,我們有一個具有四個沒有id的字段的模型。之后,需要進行這樣的遷移。python manage.py makemigrationspython manage.py migrate首先,需要打開views.py文件并創建視圖功能。from django.shortcuts import renderfrom .models import Postfrom django.core.paginator import Paginator, EmptyPage, PageNotAnInteger# Create your views here.def Index(request): post_list = Post.objects.all() paginator = Paginator(post_list, 2) page = request.GET.get('page') try: posts = paginator.page(page) except PageNotAnInteger: posts = paginator.page(1) except EmptyPage: posts = paginator.page(paginator.num_pages) return render(request, 'index.html', {'page':page,'posts':posts})可以看到我們已經在索引視圖功能中完成了分頁確定,現在需要在創建的應用程序中創建一個新的urls.py。并鏈接您的視圖功能,像這樣:from django.urls import pathfrom .views import Indexurlpatterns = [????path('',?Index),]而且還需要像這樣在主項目urls.py中包含應用程序urls.pyfrom django.contrib import adminfrom django.urls import path, includeurlpatterns = [ path('admin/', admin.site.urls), path('', include('MyApp.urls'))]現在,在的模板文件夾中,需要創建兩個這樣的html文件。<html lang="en"><head> <meta charset="UTF-8"> <title>Titletitle> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">head><body><div class = "jumbotron"> {% for post in posts %} <h1 class="display-4">{{post.title}}h1> Published {{post.publish}} by {{post.author}} {{post.body|truncatewords:30|linebreaks}} <hr class="my-4"> {% endfor %}div>{% include "pagination.html" with page=posts %}body>html>所以這是我們的索引html文件,也可以在頂部看到我添加了Bootstrap CDN鏈接,因為我將使用一些bootstrap樣式進行分頁。該代碼用于包含我們尚未創建的分頁文件。{% include "pagination.html" with page=posts %}由于我們傳遞給模板的Page對象稱為帖子,因此我們將分頁模板包括在帖子列表模板中,并傳遞參數以正確呈現它??梢园凑沾朔椒ㄔ诓煌P偷姆猪撘晥D中重用分頁模板。
現在,這是我們的pagination.html文件。"Page navigation example" > class= class= {% if page.has_previous %} class= {% endif %} class= class= class= {% if page.has_next %} class= {% endif %} 現在可以運行的項目,將看到分頁。python manage.py runserver這將是分頁的結果。

2:基于類的視圖分頁
因此,對于基于類的視圖分頁,我們需要像這樣在views.py文件中進行一些更改。from django.shortcuts import renderfrom .models import Postfrom django.core.paginator import Paginator, EmptyPage, PageNotAnIntegerfrom django.views.generic import ListView# Create your views here.'''def Index(request): post_list = Post.objects.all() paginator = Paginator(post_list, 2) page = request.GET.get('page') try: posts = paginator.page(page) except PageNotAnInteger: posts = paginator.page(1) except EmptyPage: posts = paginator.page(paginator.num_pages) return render(request, 'index.html', {'page':page,'posts':posts})'''class PostList(ListView): queryset = Post.objects.all() context_object_name = 'posts' paginate_by = 2 template_name = 'index.html'django.views.generic.list.ListView提供了一種內置的方法來對顯示的列表進行分頁??梢酝ㄟ^在視圖類中添加paginate_by屬性來實現此目的,這會限制每頁的對象數,并向上下文中添加paginator和page_obj。要允許用戶在頁面之間導航,請在模板中添加指向下一頁和上一頁的鏈接。
現在,在此之后,需要打開urls.py并注釋上一個視圖,并添加基于類的視圖from django.urls import pathfrom .views import PostListurlpatterns = [ #path('', Index), path('', PostList.as_view())]可以在頂部看到我們已經導入了PostList,為了保持分頁功能,我們必須使用正確的頁面。傳遞給模板的對象。Django的ListView通用視圖將所選頁面傳遞到名為page_obj的變量中,因此必須相應地編輯index.html模板,以使用正確的變量包括分頁器,如下所示:{% include 'pagination.html' with page=page_obj %}因此,如果運行項目,結果跟上面截圖是一樣的。
完畢,希望這篇對大家學習有幫助。

總結

以上是生活随笔為你收集整理的django 打开的html css_Django分页完整示例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。