資料查詢分頁功能和排序功能大家都很熟悉,本文以乙個小例子介紹一下django後台實現
id依次從6到1
"detail": "this is test",
"createtime": "2016-05-22 00:06:36",
"modifytime": "2016-05-22 00:06:36",
"isdelete": "false",
"type": "test",
"id": "6",
"iduser_id": "1"
"detail": "this is test",
"createtime": "2016-05-22 00:06:17",
"modifytime": "2016-05-22 00:06:17",
"isdelete": "false",
"type": "test",
"id": "5",
"iduser_id": "1"
"detail": "this is test",
"createtime": "2016-05-22 00:06:17",
"modifytime": "2016-05-22 00:06:17",
"isdelete": "false",
"type": "test",
"id": "4",
"iduser_id": "1"
"detail": "this is test",
"createtime": "2016-05-22 00:06:16",
"modifytime": "2016-05-22 00:06:16",
"isdelete": "false",
"type": "test",
"id": "3",
"iduser_id": "1"
"detail": "this is test",
"createtime": "2016-05-22 00:06:15",
"modifytime": "2016-05-22 00:06:15",
"isdelete": "false",
"type": "test",
"id": "2",
"iduser_id": "1"
"detail": "this is test",
"createtime": "2016-05-22 00:06:12",
"modifytime": "2016-05-22 00:06:12",
"isdelete": "false",
"type": "test",
"id": "1",
"iduser_id": "1"
分頁有兩個重要的引數,乙個是每頁顯示的記錄條數,乙個是頁碼。
資料表查詢主體**,實現比較簡單,就不解釋太多,直接看**
1、分片**luserlogs[start:end],這樣書寫只會從資料庫中獲取onepagecount資料,不會獲取所有資料
2、luserlogs.count()方式統計總數,不要用len(luserlogs),前者是select count(*)語法,後者會返回整個查詢結果集
onepagecount表示單頁個數,預設為20,page表示頁碼,預設為1
get
-- response --
200 ok
date: sun, 22 may 2016 04:07:04 gmt
server: wsgiserver/0.1 python/2.7.10
vary: cookie
x-frame-options: sameorigin
set-cookie: csrftoken=ma0qffh87zllpjqt0blupb16f7waoih8; expires=sun, 21-may-2017 04:07:04 gmt; max-age=31449600; path=/
[, ]
get
-- response --
200 ok
date: sun, 22 may 2016 04:11:07 gmt
server: wsgiserver/0.1 python/2.7.10
vary: cookie
x-frame-options: sameorigin
set-cookie: csrftoken=ma0qffh87zllpjqt0blupb16f7waoih8; expires=sun, 21-may-2017 04:11:07 gmt; max-age=31449600; path=/
[, ]
我這的資料表很多都需要排序,預設的排序方式都一樣,所以提取出基類如下
排序**ordering = ['-modifytime','-createtime','-id']
-符號表示逆序,從大到小,從最新的到最老的
實際的表繼承基類即可
返回的資料就如同文首的資料以及本文其他的json返回資料結構一樣,按照ordering定義的順序排列
django queryset合併問題
今天在實現搜尋時遇到乙個問題,如何同時搜尋model裡面的title以及content和category字典 contents blog.objects.filter content contains content titles blog.objects.filter title contains...
Django QuerySet快取和惰性機制
惰性機制 在內部。queryset在構造,過濾,切片,傳遞的時候通常查詢集不會真正的去資料庫查詢 那它會在什麼情況下去資料庫查詢呢?1.迭代 通過迴圈將值乙個個拿出來 2.切片,使用切片語法的step 步長切片 引數,或者是切片只切出乙個元素的時候,django將執行資料庫查詢,3.直接在控制台列印...
django QuerySet物件轉換成字典物件
今天做乙個新增購物車的模組,在新增商品之前要先驗證使用者是否處於登入狀態,前台用ajax非同步傳送請求,後台在接收到請求後從session中取出使用者登入資訊。根據登入資訊從使用者表中查詢出對應使用者,再將狀態碼和使用者資訊返回到前台,這裡查詢出來的使用者是個實體物件,需要先將它轉換為字典後再轉換為...