使用django和vue进行数据交互的方法步骤
一、前端请求的封装
1.将请求地址封装起来,以便日后修改,在src/assets/js目录下创建getPath.js文件
exportdefaultfunctiongetUrl(str){
leturl='http://localhost:8000/'+str;
returnurl;
}
2.在同一个目录下创建axios.js文件
我的前端数据交互使用的模块使用的是axios
importaxiosfrom'axios'
importgetUrlfrom'./getPath'
exportdefault{
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);
})
}
}
//状态检测
letstateDetection=(data,callback)=>{
letstatus=data.status_code;
switch(status){
case102:
break;
case103:
alert(data.content);
break;
case404:
window.location.href=data.url;
break;
}
}
二、前端Get请求使用
1.在src/store/目录下的ArchiveStore.js文件引入axios模块
importaxiosfrom'../assets/js/axios'
2.在src/store/目录下的ArchiveStore.js文件里的state添加文章详情的数据结构
specific:{
browse:0,
content:'',
title:'',
date:'',
tags:[]
},//文章详情
3.在src/store/目录下的ArchiveStore.js文件里创建一个action方法
getArticlesSpecific({commit,state},id){//得到指定文章详情
axios.Get({
url:'get_article_specific',
params:{
id:id
},
callback:(res)=>{
//console.log(res);
letdata=res.data
state.specific={
browse:data['browse'],
content:data['content'],
title:data['title'],
date:data['date'],
tags:data['tags']
}
state.loading=false;
//specific
}
})
}
4.在文章详情页面Specificartical.vue(src/components)下执行getArticlesSpecific方法即可
{{specific.title}} {{specific.date}}/ {{specific.browse}}/ {{specific.content}}@ * {{index!=0?',':''}}{{tag}}