使用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}}