Django+vue 分頁查詢

Django分頁查詢(整合vue)
一萤衰、django部分
在view.py里添加分頁查詢方法

from django.http import JsonResponse
from django.views.decorators.http import require_http_methods
from django.core import serializers
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
import json

# 分頁查詢
def show_page(request):
    page = request.GET.get('page')
    pageSize = int(request.GET.get('pageSize'))
    response = {}
    book_list = Book.objects.all()
    paginator = Paginator(book_list, pageSize)
    response['total'] = paginator.count
    try:
        books = paginator.page(page)
    except PageNotAnInteger:
        books = paginator.page(1)
    except EmptyPage:
        books = paginator.page(paginator.num_pages)
    response['list'] = json.loads(serializers.serialize("json", books))
    return JsonResponse(response)

接受前端傳來的值:page為要顯示的頁數(shù)量蕊,pageSize為每頁顯示的數(shù)量

返回值類型:

{
"total": 14,
"list": [
{
"pk": 45,
"model": "myapp.book",
"fields": {
"book_name": "122323123231",
"add_time": "2017-09-25T07:15:57.946Z"
}
},
{
"pk": 46,
"model": "myapp.book",
"fields": {
"book_name": "12232312323112",
"add_time": "2017-09-25T07:16:00.553Z"
}
},
{
"pk": 47,
"model": "myapp.book",
"fields": {
"book_name": "12232312323112",
"add_time": "2017-09-25T07:16:00.730Z"
}
},
{
"pk": 48,
"model": "myapp.book",
"fields": {
"book_name": "12232312323112",
"add_time": "2017-09-25T07:16:00.904Z"
}
},
{
"pk": 49,
"model": "myapp.book",
"fields": {
"book_name": "12232312323112",
"add_time": "2017-09-25T07:16:01.074Z"
}
}
]
}

二作郭、vue部分
HTML代碼:

<template>
  <div class="table">
    <h1>數(shù)據增刪改查</h1>
    <el-row type="flex">
      <el-col :span="12">
        <el-input v-model="input" placeholder="請輸入書名"></el-input>
      </el-col>
      <el-col :span="2">
        <el-button type="primary" @click="addBook()">新增</el-button>
      </el-col>
    </el-row>
    <el-row type="flex">
      <el-col :span="12">
        <el-input v-model="SearchInput" placeholder="要查詢的書名"></el-input>
      </el-col>
      <el-col :span="2">
        <el-button type="primary" @click="searchBook()">查詢</el-button>
      </el-col>
    </el-row>

    <el-table :data="tableData" border style="width: 100%">
      <el-table-column label="日期" width="280">
        <template scope="scope">
          <el-icon name="time"></el-icon>
          <span style="margin-left: 10px">{{ scope.row.fields.add_time }}</span>
        </template>
      </el-table-column>
      <el-table-column label="書名" width="280">
        <template scope="scope">
          <el-input v-show="scope.row.edit" size="small" v-model="scope.row.fields.book_name"></el-input>
          <span v-show="!scope.row.edit">{{ scope.row.fields.book_name }}</span>
        </template>
      </el-table-column>
      <el-table-column label="操作">
        <template scope="scope">
          <el-button
            size="small"
            @click="handleEdit(scope.$index, scope.row)">{{ scope.row.edit ? '完成' : '編輯'}}
          </el-button>
          <el-button
            size="small"
            type="danger"
            @click="handleDelete(scope.$index, scope.row)">刪除
          </el-button>
        </template>
      </el-table-column>
    </el-table>
    <el-pagination
      @size-change="handleSizeChange"
      @current-change="handleCurrentChange"
      :current-page="currentPage"
      :page-sizes="[5,15,20,25]"
      :page-size="pageSize"
      layout="total, sizes, prev, pager, next, jumper"
      :total="total">
    </el-pagination>
  </div>
</template>

script代碼:

數(shù)據data部分

data() {
  return {
    input: '',
    SearchInput: '',
    //一共多少條數(shù)據
    total: 0,
    //每頁顯示多少條數(shù)據
    pageSize: 5,
    //當前第幾頁
    page: 1,
    tableData: [],
    currentPage: 1
  }
},

獲取數(shù)據的方法:

showBooks() {
  this.$http.get(requestUrl + '/api/show_page?page=' + this.page + '&pageSize=' + this.pageSize)
    .then((response) => {
      let res = JSON.parse(response.bodyText);
      console.log(res);
      this.total = res.total;
      this.tableData = res.list.map(v => {
        //在返回的數(shù)據里增加一條數(shù)據
        this.$set(v, 'edit', false)
        return v
      })
    })
}

當每頁顯數(shù)量改變時執(zhí)行的方法

handleSizeChange(pageSize) {
  //每頁顯示多少條數(shù)據
  this.pageSize = pageSize;
  console.log(pageSize);
  this.showBooks()
},

當點第幾頁時執(zhí)行的方法

handleCurrentChange(val) {
  this.page = val;
  this.showBooks();
  console.log(`當前頁: ${val}`);
}

————————————————
版權聲明:本文為CSDN博主「shirukai」的原創(chuàng)文章子檀,遵循CC 4.0 BY-SA版權協(xié)議再悼,轉載請附上原文出處鏈接及本聲明缎除。
原文鏈接:https://blog.csdn.net/shirukai/article/details/81086272

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市荒辕,隨后出現(xiàn)的幾起案子汗销,更是在濱河造成了極大的恐慌犹褒,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件弛针,死亡現(xiàn)場離奇詭異叠骑,居然都是意外死亡,警方通過查閱死者的電腦和手機削茁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門宙枷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人茧跋,你說我怎么就攤上這事慰丛。” “怎么了瘾杭?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵诅病,是天一觀的道長。 經常有香客問我粥烁,道長贤笆,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任讨阻,我火速辦了婚禮芥永,結果婚禮上,老公的妹妹穿的比我還像新娘变勇。我一直安慰自己恤左,他們只是感情好,可當我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布搀绣。 她就那樣靜靜地躺著飞袋,像睡著了一般。 火紅的嫁衣襯著肌膚如雪链患。 梳的紋絲不亂的頭發(fā)上巧鸭,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天,我揣著相機與錄音麻捻,去河邊找鬼纲仍。 笑死,一個胖子當著我的面吹牛贸毕,可吹牛的內容都是我干的郑叠。 我是一名探鬼主播,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼明棍,長吁一口氣:“原來是場噩夢啊……” “哼乡革!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤沸版,失蹤者是張志新(化名)和其女友劉穎嘁傀,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體视粮,經...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡细办,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了蕾殴。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片笑撞。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖区宇,靈堂內的尸體忽然破棺而出娃殖,到底是詐尸還是另有隱情,我是刑警寧澤议谷,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站堕虹,受9級特大地震影響卧晓,放射性物質發(fā)生泄漏。R本人自食惡果不足惜赴捞,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一逼裆、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧赦政,春花似錦胜宇、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至掰派,卻和暖如春从诲,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背靡羡。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工系洛, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人略步。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓描扯,卻偏偏與公主長得像,于是被迫代替她去往敵國和親趟薄。 傳聞我的和親對象是個殘疾皇子绽诚,可洞房花燭夜當晚...
    茶點故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內容