假設現有需求如下:
需要乙個頁面分頁展示資訊,在該頁面新增搜尋框以提供檢索功能。
那麼,我們知道,展示資訊和檢索功能是在同乙個頁面,也就是共用乙個路由。
**如下:
第一步,寫路由:為了清晰,這裡只給出主頁和展示頁面的路由。
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...