一、前端请求的封装
1.将请求地址封装起来,以便日后修改,在src/assets/js目录下创建getPath.js文件
export default function getUrl(str) { let url = 'http://localhost:8000/' + str; return url; }
2.在同一个目录下创建axios.js文件
我的前端数据交互使用的模块使用的是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); }) } } //状态检测 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请求使用
1.在src/store/目录下的ArchiveStore.js文件引入axios模块
import axios from '../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); 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.在文章详情页面Specificartical.vue(src/components)下执行getArticlesSpecific方法即可
<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"color: #ff0000">三、后端Get请求使用1.在urls.py(djangoBlog)文件下面引入views.py里面的方法
from blog.views import *2.注册url
from blog.views import * urlpatterns = [ url(r'^get_article_specific/$', getArticleSpecific, name='get_article_specific'), ]3.在views.py里面导入需要用到的模块和models
from blog.models import * from django.http import JsonResponse from django.db.models.functions import TruncDate4.在views.py里面添加getArticleSpecific方法
#得到文章详情 def getArticleSpecific(request): results={} #得到标签数组 temp=list(Article.objects.get(id=request.GET['id']).tag.values_list('name') ) results['tags']=[] #处理标签数组的格式 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)以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。