最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue前端和Django后端如何查詢一定時(shí)間段內(nèi)的數(shù)據(jù)

 更新時(shí)間:2021年02月28日 12:26:35   作者:沃特艾文兒~  
這篇文章主要給大家介紹了關(guān)于vue前端和Django后端如何查詢一定時(shí)間段內(nèi)的數(shù)據(jù)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

前言

在開(kāi)發(fā)過(guò)程中經(jīng)常會(huì)遇到篩選查詢之類的功能,比如查詢某一個(gè)時(shí)間段內(nèi)的數(shù)據(jù)而非所有數(shù)據(jù)。

這樣我們就需要向后端發(fā)送時(shí)間段的參數(shù),然后在后端處理查詢。

這里以Django后端和vue前端的簡(jiǎn)單例子來(lái)記錄大致實(shí)現(xiàn)。

后端數(shù)據(jù)庫(kù)

這里是一些簡(jiǎn)單的數(shù)據(jù)重要的是date,我們需要根據(jù)日期來(lái)篩選返回到前端。

models.py

class CountDownSign(models.Model):
 name = models.CharField(max_length=1000) 
 date = models.DateField() 
 sign = models.CharField(max_length=200) 

serializers.py

這里引入的是drf框架,但篩選查詢的思路和這個(gè)框架沒(méi)有關(guān)系。

class CountDownModelSerializer(serializers.ModelSerializer):
 class Meta:
 model = CountDownSign
 fields = '__all__'

 def create(self, validated_data):
 return CountDownSign.objects.create(**validated_data)

 def update(self, instance, validated_data):
 instance.name = validated_data.get('name', instance.name)
 instance.date = validated_data.get('date', instance.date)
 instance.sign = validated_data.get('sign', instance.sign)
 instance.save()
 return instance

views.py

為篩選查詢提供接口。拿到前端傳遞的起止日期。核心代碼如下

obj = models.CountDownSign.objects.filter(date__range=(start, end))
class CountDownViewSet(ModelViewSet):
 parser_classes = [JSONParser, FormParser]
 """視圖集"""
 queryset = models.CountDownSign.objects.all()
 serializer_class = CountDownModelSerializer
 # 搜索
 search_fields = ('id', 'name', 'sign', 'date')
 
 @action(methods=['post'], detail=False)
 def getSE(self, request, *args, **kwargs):
 start = request.data.get('start', None)
 end = request.data.get('end', None)
 if start and end:
  obj = models.CountDownSign.objects.filter(date__range=(start, end))

  if obj:
  ser = CountDownModelSerializer(instance=obj, many=True)
  print(ser.data)
  return JsonResponse({
   'code': '200',
   'msg': '獲取數(shù)據(jù)成功',
   'data': ser.data
  })
  else:
  return JsonResponse({
   'code': '1002',
   'msg': '獲取失敗',
  })
 else:
  return Response(status=status.HTTP_204_NO_CONTENT)

前端界面

這里簡(jiǎn)略給出用于接收起止時(shí)間的兩個(gè)date-picker,并且給搜索綁定事件。

 <div class="datePicker">
 <div class="block" style="float: left">
 <el-date-picker
  v-model="value1"
  type="datetime"
  value-format="yyyy-MM-dd"
  placeholder="請(qǐng)選擇選擇開(kāi)始日期">
 </el-date-picker>
 </div>
 <div class="block" style="float: left; margin-left: 20px;">
 <el-date-picker
  v-model="value2"
  type="datetime"
  value-format="yyyy-MM-dd"
  placeholder="請(qǐng)選擇截止日期">
 </el-date-picker>
 </div>
 <el-button round style="float: left; margin-left: 20px;" @click="searchC">搜索</el-button>
 </div>

data.js

實(shí)現(xiàn)的接口函數(shù)

export function searchCountDown(start, end) {
 return request({
 url: 'countDown/getSE/',
 method: 'post',
 data: {
  start: start,
  end: end
 }
 })
}

點(diǎn)擊事件的實(shí)現(xiàn)

判斷輸入的合法性,并接受數(shù)據(jù)進(jìn)行數(shù)據(jù)綁定展示

searchC() {
 console.log(this.value1);
 console.log(this.value2);
 if (this.value1 < this.value2) {
 searchCountDown(this.value1, this.value2).then(res => {
  console.log(res.data);
  this.searchRes = res.data;
 })
 } else {
 this.$message.error("時(shí)間范圍出錯(cuò)");
 }
 },

數(shù)據(jù)展示

 <div class="article">
 <ul>
 <li v-for="(item,index) in searchRes">
  <div class="ui grid" style="width: 100%;height: 60px;">
  <div class="four wide column"><span>{{ item.name }}</span></div>
  <div class="four wide column"><span>{{ item.date }}</span></div>
  <div class="four wide column"><span>{{ item.sign }}</span></div>
  <div class="four wide column">
  <el-button type="danger" icon="el-icon-delete" circle @click="deleteC(item.id)"></el-button>
  <el-button type="primary" icon="el-icon-edit" circle></el-button>
  </div>
  </div>
  <div class="ui divider"></div>
 </li>
 </ul>

運(yùn)行結(jié)果

可以看到返回的數(shù)據(jù)均是在時(shí)間范圍內(nèi),這里的2月25號(hào)零時(shí)其實(shí)返回的數(shù)據(jù)是2月5號(hào),因?yàn)檫M(jìn)行了數(shù)據(jù)格式化,所以25號(hào)的數(shù)據(jù)也被返回了。

總結(jié)

到此這篇關(guān)于vue前端和Django后端如何查詢一定時(shí)間段內(nèi)數(shù)據(jù)的文章就介紹到這了,更多相關(guān)vue和Django查詢數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue+element_ui上傳文件,并傳遞額外參數(shù)操作

    vue+element_ui上傳文件,并傳遞額外參數(shù)操作

    這篇文章主要介紹了vue+element_ui上傳文件,并傳遞額外參數(shù)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-12-12
  • vue樣式穿透 ::v-deep的具體使用

    vue樣式穿透 ::v-deep的具體使用

    這篇文章主要介紹了vue樣式穿透 ::v-deep的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • Vue中的 mixins 和 provide/inject詳解

    Vue中的 mixins 和 provide/inject詳解

    這篇文章主要介紹了Vue中的 mixins 和 provide/inject詳解,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-07-07
  • vue如何解決watch和methods值執(zhí)行順序問(wèn)題

    vue如何解決watch和methods值執(zhí)行順序問(wèn)題

    這篇文章主要介紹了vue如何解決watch和methods值執(zhí)行順序問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • vue打包部署到springboot的實(shí)現(xiàn)示例

    vue打包部署到springboot的實(shí)現(xiàn)示例

    項(xiàng)目開(kāi)發(fā)中,一般我們都會(huì)使用SpringBoot+Vue進(jìn)行前后端開(kāi)發(fā),本文主要介紹了vue打包部署到springboot的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-07-07
  • 詳解gantt甘特圖可拖拽、編輯(vue、react都可用?highcharts)

    詳解gantt甘特圖可拖拽、編輯(vue、react都可用?highcharts)

    去年我遇到了一個(gè)甘特圖的需求,做了很多工作,最終還是不完美,今天使用一個(gè)新包,給大家重新學(xué)習(xí)下vue?甘特圖gantt的相關(guān)知識(shí),感興趣的朋友一起看看吧
    2021-11-11
  • vue采用EventBus實(shí)現(xiàn)跨組件通信及注意事項(xiàng)小結(jié)

    vue采用EventBus實(shí)現(xiàn)跨組件通信及注意事項(xiàng)小結(jié)

    EventBus是一種發(fā)布/訂閱事件設(shè)計(jì)模式的實(shí)踐。這篇文章主要介紹了vue采用EventBus實(shí)現(xiàn)跨組件通信及注意事項(xiàng),需要的朋友可以參考下
    2018-06-06
  • 在Vue中使用Select選擇器拼接label的操作

    在Vue中使用Select選擇器拼接label的操作

    這篇文章主要介紹了在Vue中使用Select選擇器拼接label的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-10-10
  • Vue核心概念A(yù)ction的總結(jié)

    Vue核心概念A(yù)ction的總結(jié)

    今天小編就為大家分享一篇關(guān)于Vue核心概念A(yù)ction的總結(jié),小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-01-01
  • vuex?設(shè)計(jì)思路和實(shí)現(xiàn)方式

    vuex?設(shè)計(jì)思路和實(shí)現(xiàn)方式

    這篇文章主要介紹了vuex?設(shè)計(jì)思路和實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08

最新評(píng)論

隆尧县| 寿阳县| 墨玉县| 基隆市| 上思县| 大田县| 都兰县| 铁岭县| 阿城市| 蚌埠市| 正镶白旗| 关岭| 临清市| 浪卡子县| 虞城县| 西盟| 正蓝旗| 江城| 上饶县| 霍林郭勒市| 临桂县| 师宗县| 海城市| 武宣县| 祁阳县| 天津市| 黄骅市| 大竹县| 公安县| 咸丰县| 永城市| 施秉县| 马龙县| 陇南市| 化州市| 修武县| 潞西市| 德州市| 饶阳县| 开平市| 梁河县|