Django 簡單實現分頁與搜尋功能

2021-09-29 08:21:03 字數 2867 閱讀 3139

假設現有需求如下:

需要乙個頁面分頁展示資訊,在該頁面新增搜尋框以提供檢索功能。

那麼,我們知道,展示資訊和檢索功能是在同乙個頁面,也就是共用乙個路由。

**如下:

第一步,寫路由:為了清晰,這裡只給出主頁和展示頁面的路由。

urls.py:

from django.urls import path

from . import views

from django.conf.urls.static import static

from django.conf import settings

from django.contrib.staticfiles.urls import staticfiles_urlpatterns

# from django.contrib import staticfiles

urlpatterns = [

# 主頁

path('', views.index),

# 訪問他人資訊入口,分頁展示

path('other/profile', views.request_user),

urlpatterns += static(settings.media_url, document_root=settings.media_root)

urlpatterns += staticfiles_urlpatterns()

第二步,寫檢視:這裡做了訪問限制,登入才能訪問

# 實現搜尋

key = request.get.get('key')

all_users = userinfo.objects.filter(cate="買家").all()

userlist =

# 如果前端傳入關鍵字,才會進行檢索,否則顯示全部買家

if key:

for user in all_users:

if key in user.address:

all_users = userlist

if all_users:

paginator = paginator(all_users, 2)

page = request.get.get('page')

try:

contacts = paginator.page(page)

except pagenotaninteger:

contacts = paginator.page(1)

except emptypage:

contacts = paginator.page(paginator.num_pages)

else:

info = '暫無資料'

分頁的原理是用到了django自帶的分頁元件

需要注意的是,搜尋的關鍵字傳參,用的是get請求,而不是post請求

簡單來說,就是先判斷前端頁面是否用搜尋框搜尋了關鍵字,如果搜尋了,那麼這個詞會被

key = request.get.get('key')

賦值給key,然後進行後續判斷處理即可。

如果沒有,就正常展示我們需要展示的。

分頁的原理。

可以去看這個元件的文件介紹。

如果返回的key檢索不到結果,返回空資料頁,並提醒。

html**:

暱稱

位址最近活躍}}

}

效果:

主頁主要功能部分:

資訊頁分頁與搜尋:搜尋框和分頁都是存在的,目前是第一頁:

第二頁:?page=2

搜尋測試:

搜尋無效資訊測試:

算是比較完整了。

Django 分頁的簡單實現

django分頁比較簡單,它內建了乙個paginator類.這樣對分頁的操作只需要明白這個類就ok了。def list request after range num 5 bevor range num 4 try page int request.get.get page 1 print page...

django 實現分頁功能

分頁效果 檢視 1 coding utf 8 2 from django.shortcuts import render,get object or 404 3 from django.core.paginator import paginator,pagenotaninteger,emptypag...

輕鬆實現Django分頁

pip install djangorestframework安裝csrf第三方庫之後,我們就可以使用自帶分頁器paginator來進行內容的分頁 如果取不到分頁物件時,設定頁碼為1 page int request.get.get page 1 取分頁物件,orders為需要分頁的物件,一般為mo...