Django python 基於Layui的分頁
Django python 基於Layui的分頁
前端程式碼
table = layui.table;
table.render({
elem: '#test-table-autowidth'
, url: '/api_v1_get_data_keys'
,height: 'full-100'
, cols: [[
{field: 'id', width: 80, title: '編號', sort: true}
, {field: 'ip', title: 'IP',align: 'center'}
, {field: 'env', width: 120,title: '環境',align: 'center'}
, {field: 'port', title: '埠',align: 'center'}
, {field: 'isstatu', width: 120,title: '是否可修改', align: 'center'}
, {field: 'note', title: '備註',align: 'center'}
]]
, page: true
});
table 表格是不能自動分頁的,需要後端程式碼支援。
page:true 設定後每次點選頁,會自動在提交頭資訊新增/xxxxx?page=1&limit=10
page 和 limit 會更具你的設定進行變更。
所以每一次點選就是一次請求。
後端端程式碼
假設我們取資料庫中的資料可以使用外掛paginator
需要引入from django.core.paginator import Paginator
下面以Django admin資料庫為例
# 分別獲取請求頭資訊中的page和limit
currentPage = request.GET.get('page', '')
limit = request.GET.get('limit', '')
# 獲取資料庫所有物件
subjects = AuthUserDataKeys.objects.all()
# 使用Paginator 建立分頁物件 limit參數列示以多少條分頁
paginator = Paginator(subjects, limit)
# 獲取對應頁的資料物件 currentPage 參數列示第幾頁
subject_obj = paginator.page(currentPage)
# 獲取資料長度不計算0
cou = AuthUserDataKeys.objects.all().count() + 1
obj = list()
# 迴圈獲取到的資料
#計算公式 起行(int(currentPage) - 1) * int(limit) + 1
#計算公式 結束行((int(currentPage) - 1) * int(limit)) +(len(subject_obj) + 1)
for x in range((int(currentPage) - 1) * int(limit) + 1,((int(currentPage) - 1) * int(limit)) +(len(subject_obj) + 1)):
#定義dic key
data = ['id', 'ip', 'env', 'username', 'password','port', 'isstatu', 'note']
t = list()
#根據ID 獲取對應行的資料
ks = AuthUserDataKeys.objects.get(id=x)
t.append(ks.id)
t.append(ks.ip)
t.append(ks.env)
t.append(ks.username)
t.append(ks.password)
t.append(ks.port)
t.append(ks.isstatu)
t.append(ks.note)
# 轉化為Key:value
dictionary = dict(zip(data, t))
obj.append(dictionary)
context = {"code": 0, "msg": "獲取資料成功","count": cou - 1, "data": obj}
# json 格式返回
return HttpResponse(json.dumps(context, ensure_ascii=False), content_type='application/json',charset='utf-8')
已知問題
因通過ID獲取對應行物件,故資料庫行id發生變更會導致異常。
可自行修改,修改邏輯,獲取所有行的id值,通過所獲取的id值進行獲取
相關文章
- Django的分頁Django
- Yii2 基於 layui 的 Excel 上傳並匯入資料(含分頁)UIExcel
- Laravel 使用 layui 分頁過長LaravelUI
- 使用LayUI實現AJAX分頁UI
- 基於jqgrid + ashx + nhibernate的分頁
- 3.Django分頁Django
- 13.Django-分頁Django
- django--DRF分頁Django
- Django REST framework 分頁DjangoRESTFramework
- Python:Django的ListView超詳細用法(含分頁paginate功能)PythonDjangoView
- python django整理(三)頁面基礎(仿BBS)PythonDjango
- Django(68)drf分頁器的使用Django
- 通用分頁-基於bootstrap和jQuerybootjQuery
- 基於Python+Django+Jquery架構的Web開發PythonDjangojQuery架構Web
- 頁面佈局 layui與 layui的匯入UI
- Django 前端BootCSS 實現分頁Django前端bootCSS
- layui 分頁元件 ,重新整理後返回第一頁問題UI元件
- Django REST framework API 指南(17):分頁DjangoRESTFrameworkAPI
- [Python] 基於 jieba 的中文分詞總結PythonJieba中文分詞
- layui 資料表格重新載入資料分頁器回到第一頁UI
- layuimini 釋出單頁版,一款基於 layui 開源的管理後臺模板(iframe、單頁供選擇)UI
- django 網站實現簡單分頁Django網站
- Django學習筆記(12)——分頁功能Django筆記
- Python+django網頁設計入門(16):優化設計複用分頁程式碼PythonDjango網頁優化
- django-rest-framework 基礎四 過濾、排序、分頁、異常處理DjangoRESTFramework排序
- django實現分頁的模組(匯入即可用)Django
- 比Django官方實現更好的分頁元件+Bootstrap整合Django元件boot
- 基於django的視訊點播網站開發-step4-首頁功能Django網站
- Python Web實戰:Python+Django+MySQL實現基於Web版的增刪改查PythonWebDjangoMySql
- Django之基於iframe的ajax偽造Django
- [Django REST framework - 自動生成介面文件、分頁]DjangoRESTFramework
- 基於django的視訊點播網站開發-step5-詳情頁功能Django網站
- 基於Python的人臉檢測與分類Python
- 基於Sql server資料庫的四種分頁方式總結SQLServer資料庫
- 關於 Laravel 分頁的問題?Laravel
- 基於layui的省市區三級聯動(資料互動)UI
- 基於thinkphp5+layui開的CLTPHP內容管理系統PHPUI
- Layui 官網要下線了!!!基於layui開發的後端系統該何去何從UI後端