欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用django和vue進(jìn)行數(shù)據(jù)交互的方法步驟

 更新時(shí)間:2019年11月11日 14:45:44   作者:25潔如  
這篇文章主要介紹了使用django和vue進(jìn)行數(shù)據(jù)交互的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

一、前端請(qǐng)求的封裝

1.將請(qǐng)求地址封裝起來(lái),以便日后修改,在src/assets/js目錄下創(chuàng)建getPath.js文件

export default function getUrl(str) {
  let url = 'http://localhost:8000/' + str;
  return url;
}

2.在同一個(gè)目錄下創(chuàng)建axios.js文件

我的前端數(shù)據(jù)交互使用的模塊使用的是axios

import axios from 'axios'
import getUrl from './getPath'
export default {
 Get: (config) => {
  axios({
   methods: "get",
   url: getUrl(config.url),
   params: config.params
  }).then((res) => {
   stateDetection(res);
   config.callback && config.callback(res);
  })

 },
 Post: () => {
  axios({
   methods: "post",
   url: getUrl(config.url)
  }).then((res) => {
   stateDetection(res);
   config.callback && config.callback(res);
  })
 }

}
//狀態(tài)檢測(cè)
let stateDetection = (data, callback) => {
 let status = data.status_code;
 switch (status) {
  case 102:
   break;
  case 103:
   alert(data.content);
   break;
  case 404:
   window.location.href = data.url;
   break;
 }
}

二、前端Get請(qǐng)求使用

1.在src/store/目錄下的ArchiveStore.js文件引入axios模塊

import axios from '../assets/js/axios'

2.在src/store/目錄下的ArchiveStore.js文件里的state添加文章詳情的數(shù)據(jù)結(jié)構(gòu)

 specific: {
   browse: 0,
   content: '',
   title: '',
   date: '',
   tags: []
  }, //文章詳情

3.在src/store/目錄下的ArchiveStore.js文件里創(chuàng)建一個(gè)action方法

  getArticlesSpecific({ commit, state }, id) { //得到指定文章詳情
   axios.Get({
    url: 'get_article_specific',
    params: {
     id: id
    },
    callback: (res) => {
     // console.log(res);
     let data = res.data
     state.specific = {
      browse: data['browse'],
      content: data['content'],
      title: data['title'],
      date: data['date'],
      tags: data['tags']
     }
     state.loading = false;
     // specific
    }
   })

  }

4.在文章詳情頁(yè)面Specificartical.vue(src/components)下執(zhí)行g(shù)etArticlesSpecific方法即可

<template>
 <div class="specificartical borderStyle container" >
  <h1 class='title'>{{specific.title}} </h1>
  <div class='content'>
    <div><span class='annotation'><i></i>{{specific.date}}</span>/
   <span class='annotation'><i></i>{{specific.browse}}</span>/
   <div>{{specific.content}}</div>
   <div class='attention'><i>@</i></div>
   <div class='lable'><i>*</i><a v-for="(tag,index) in specific.tags" :key="index">{{index!=0?',':''}}{{tag}}</a></div>
  </div>
  
 </div>
</template>

<script>
import {mapState, mapActions} from 'vuex'
export default {
 name: 'specificartical',
 computed: {
 ...mapState({
  specific:state=>state.ArchiveStore.specific,
 })
 },
 methods:{
 ...mapActions([
  'getArticlesSpecific'
 ]), 
 },
 activated:function(){this.getArticlesSpecific(this.$route.params.id);
 }
}
</script>

在這里要注意的是使用activated生命周期函數(shù),該函數(shù)會(huì)在keep-alive,組件被激活時(shí)調(diào)用

三、后端Get請(qǐng)求使用

1.在urls.py(djangoBlog)文件下面引入views.py里面的方法

from blog.views import *

2.注冊(cè)u(píng)rl

from blog.views import *
urlpatterns = [
 url(r'^get_article_specific/$', getArticleSpecific, name='get_article_specific'),
]

3.在views.py里面導(dǎo)入需要用到的模塊和models

from blog.models import *
from django.http import JsonResponse
from django.db.models.functions import TruncDate

4.在views.py里面添加getArticleSpecific方法

#得到文章詳情
def getArticleSpecific(request):
 results={}
 #得到標(biāo)簽數(shù)組
 temp=list(Article.objects.get(id=request.GET['id']).tag.values_list('name') )
 results['tags']=[]
 #處理標(biāo)簽數(shù)組的格式
 for value in temp:
  results['tags'].append(value[0])
 #得到文章詳情
 data=Article.objects.annotate(date=TruncDate('create_time')).values('title','content','browse','date').get(id=request.GET['id'])
 results['browse']=data['browse']
 results['title']=data['title']
 results['content']=data['content']
 results['date']=data['date']
 results['status_code']=102
 return JsonResponse(results, safe=False)

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Django框架下在URLconf中指定視圖緩存的方法

    Django框架下在URLconf中指定視圖緩存的方法

    這篇文章主要介紹了Django框架下在URLconf中指定視圖緩存的方法,在Python豐富多彩的web框架中,Django是最具人氣的一個(gè),需要的朋友可以參考下
    2015-07-07
  • 使用Python圖像處理庫(kù)Pillow處理圖像文件的案例分析

    使用Python圖像處理庫(kù)Pillow處理圖像文件的案例分析

    本文將通過(guò)使用Python圖像處理庫(kù)Pillow,幫助大家進(jìn)一步了解Python的基本概念:模塊、對(duì)象、方法和函數(shù)的使用,文中代碼講解的非常詳細(xì),需要的朋友可以參考下
    2023-07-07
  • Python使用技巧之實(shí)現(xiàn)Excel轉(zhuǎn)為PDF

    Python使用技巧之實(shí)現(xiàn)Excel轉(zhuǎn)為PDF

    這篇文章主要為大家詳細(xì)介紹了使用第三方Python庫(kù)Spire.XLS?for?Python?實(shí)現(xiàn)Excel轉(zhuǎn)PDF的簡(jiǎn)單方法,文中的示例代碼講解詳細(xì),需要的可以參考下
    2023-11-11
  • 如何用 Python 子進(jìn)程關(guān)閉 Excel 自動(dòng)化中的彈窗

    如何用 Python 子進(jìn)程關(guān)閉 Excel 自動(dòng)化中的彈窗

    這篇文章主要介紹了如何用 Python 子進(jìn)程關(guān)閉 Excel 自動(dòng)化中的彈窗,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-05-05
  • Selenium 滾動(dòng)頁(yè)面至元素可見(jiàn)的方法

    Selenium 滾動(dòng)頁(yè)面至元素可見(jiàn)的方法

    這篇文章主要介紹了Selenium 滾動(dòng)頁(yè)面至元素可見(jiàn)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • Python中元組,列表,字典的區(qū)別

    Python中元組,列表,字典的區(qū)別

    Python中,有3種內(nèi)建的數(shù)據(jù)結(jié)構(gòu):列表、元組和字典。那么他們之間有哪些區(qū)別呢?下面小編給大家?guī)?lái)了Python中元組,列表,字典的區(qū)別,需要的朋友參考下吧
    2017-05-05
  • python 控制語(yǔ)句

    python 控制語(yǔ)句

    python控制語(yǔ)句和其它的語(yǔ)言的控制語(yǔ)句有些地方是不同的,python的一些哲學(xué)思想就體現(xiàn)在他的控制語(yǔ)句上
    2011-11-11
  • pyinstaller打包后偶爾出現(xiàn)黑窗口一閃而過(guò)的問(wèn)題及解決

    pyinstaller打包后偶爾出現(xiàn)黑窗口一閃而過(guò)的問(wèn)題及解決

    這篇文章主要介紹了pyinstaller打包后偶爾出現(xiàn)黑窗口一閃而過(guò)的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • django框架model orM使用字典作為參數(shù),保存數(shù)據(jù)的方法分析

    django框架model orM使用字典作為參數(shù),保存數(shù)據(jù)的方法分析

    這篇文章主要介紹了django框架model orM使用字典作為參數(shù),保存數(shù)據(jù)的方法,結(jié)合實(shí)例形式分析了字典參數(shù)結(jié)合django model實(shí)現(xiàn)保存數(shù)據(jù)相關(guān)操作技巧,需要的朋友可以參考下
    2019-06-06
  • python中的內(nèi)置函數(shù)getattr()介紹及示例

    python中的內(nèi)置函數(shù)getattr()介紹及示例

    其實(shí)getattr()這個(gè)方法最主要的作用是實(shí)現(xiàn)反射機(jī)制。也就是說(shuō)可以通過(guò)字符串獲取方法實(shí)例。這樣,你就可以把一個(gè)類可能要調(diào)用的方法放在配置文件里,在需要的時(shí)候動(dòng)態(tài)加載。
    2014-07-07

最新評(píng)論