将前端 Vue 项目和后端 Django 框架联系起来,让他们之间可以通过AXIOS进行通信并且传输数据,在 前端Vue项目中写一个请求函数,这个函数会请求/hello 接口, Vue 项目收到后端返回过来的json格式数据 {"hello": "world"} 。

第一步:前端VUE准备

1.在相应目录下进入命令行,然后输入命令新建项目:

vue create projectname(项目名字)

2.执行运行命令(前端依赖于node环境):

npm run serve

3.控制台会输出本地网页的地址,默认是localhost 8080端口,用浏览器打开就是vue界面:

App running at:

- Local:   http://localhost:8080/

- Network: http://192.168.255.10:8080/

Note that the development build is not optimized.

To create a production build, run npm run build.

第二步:安装axios库

安装命令:npm install --save axios vue-axios

第三步:前端请求配置

在前端vue项目 src/main.js中引入axios库和请求前缀(即url)

import Vue from 'vue'

import App from './App.vue'

import axios from 'axios'

import VueAxios from 'vue-axios'

Vue.use(VueAxios, axios)

Vue.config.productionTip = false

axios.defaults.baseURL = 'http://XXXXXXXX // axios 发起请求的前缀

然后在前端编写vue代码: HelloWorld.vue 界面初始化的时候,会调用我们的 test 方法,test 向后端/hello/的路由发送一个 Post 请求。并将后端返回的内容打印到控制台。

<script>export default {name: 'HelloWorld',props: {msg: String},mounted () {this.test()},methods: {test: function () {this.axios({url: '/hello/',method: 'post',responseType: 'json' // 默认的}).then(res => {var jsondata = JSON.parse(JSON.stringify(res.data))console.log(jsondata)})}}}</script>

第四步:后端配置,通过中间件解决前后端跨域问题

1.在/config/default.py 文件中添加如下配置:

# 将corsheaders添加为我们的django appINSTALLED_APPS += (  # noqa'home_application','mako_application','corsheaders',)# 添加自定义中间件MIDDLEWARE += (  # noqa'corsheaders.middleware.CorsMiddleware',)

2.在config/stag.py 文件中追加如下配置:

# 白名单, 域名请按照前段实际配置修改CORS_ORIGIN_WHITELIST = ['http://localhost:8080',]# 允许跨域使用 cookieCORS_ALLOW_CREDENTIALS = True

在项目根目录下 setting.py 文件中添加我们的跨域配置:

#在本地开发环境下开启跨域允许if ENVIRONMENT == 'dev':# 跨域增加忽略CORS_ALLOW_CREDENTIALS = TrueCORS_ORIGIN_ALLOW_ALL = TrueCORS_ORIGIN_WHITELIST = ['http://localhost:8080',]CORS_ALLOW_METHODS = ('DELETE','GET','OPTIONS','PATCH','POST','PUT','VIEW',)CORS_ALLOW_HEADERS = ('accept','accept-encoding','authorization','content-type','dnt','origin','user-agent','x-csrftoken','x-requested-with',)

第五步:CSRF token配置

在 Vue 项目中/src/main.js中添加相关的配置,然后前端就可以获取后端的json数据啦,啦啦啦!

import Vue from 'vue'import App from './App.vue'import axios from 'axios'import VueAxios from 'vue-axios'Vue.config.productionTip = falseVue.use(VueAxios,axios);// 这里是添加的部分function getCsrftokenByCookie () {const cookie = document.cookie.split(';')// 获取csrftokenlet csrftoken = ''for (const i in cookie) {if (cookie[i].indexOf('csrftoken') !== -1) {csrftoken = cookie[i].split('=')[1]}}return csrftoken}// 每次请求头都带上我们的X-CSRFToken 信息axios.defaults.headers.common['X-CSRFToken'] = getCsrftokenByCookie();axios.defaults.withCredentials = true;Vue.config.productionTip = falseaxios.defaults.baseURL = 'http://dev.paas-class.bktencent.com:8000/'new Vue({render: h => h(App),}).$mount('#app')

前端vue+后端Django通信实例,传递json数据相关推荐

  1. 前端Vue+后端Django项目创建以及自动部署流程

    所有的环境都安装完了之后,接下来就要创建项目了,完整的项目开发流程是由开发的同学先写完代码,然后交付给运维的同学部署到测试和生产环境.DevOps可以让整个流程自动化,开发的同学只需要稍微会一些工具就 ...

  2. android post json格式,Android中post请求传递json数据给服务端的实例

    在最近的项目中有个需求是这样的: 入参封装成JSON,EXAMPLE: { "uuid": "iamauuid","clientType": ...

  3. android json传输数据到服务器,Android中post请求传递json数据给服务端的实例

    在最近的项目中有个需求是这样的: 入参封装成JSON,EXAMPLE: { "uuid": "iamauuid", "clientType" ...

  4. 【前端Vue+后端Node.js+MySql】部署到服务器

    [前端Vue+后端Node.js+MySql]部署到服务器 文章目录 [前端Vue+后端Node.js+MySql]部署到服务器 1.买服务器 2.服务器操作 2.1.修改服务器密码,xshell登录 ...

  5. 手把手教你在局域网部署前端vue+后端php的网站服务

    教你在局域网部署前端vue+后端php的网站服务 1.阅读对象 本篇教程适合新手阅读,老手直接略过 2.教程难度 初级 本人水平有限,文章内容难免会出现问题,如果有问题欢迎指出,谢谢 正文 如今网站建 ...

  6. MVC中利用ViewBag传递Json数据时的前端处理方法

    ** MVC中利用ViewBag传递Json数据时的前端处理方法 ** 用viewBag传递Json字符串到前端时,json字符串中的"会被转义为& quot,前端处理方法为@Htm ...

  7. 基于前端Vue后端.NetCore Web后台管理系统通用开本框架采用前后端分离技术,前端使用vue2.6.0,后端使用.netcore3.1,支持跨平台、多租户

    基于前端Vue后端.NetCore Web后台管理系统通用开本框架采用前后端分离技术,前端使用vue2.6.0,后端使用.netcore3.1,支持跨平台.多租户.支持MySQL/SQLServer/ ...

  8. axios向springboot后台传递json数据

    小白遇坑 刚开始我是用get方法来传递json数据,但是总是报错:Required request body is missing,我人傻了,对着这个错误百度了半天,才发现,原来axios get请求 ...

  9. SpringMVC绑定ajax传递json数据到pojo对象错误(400 Bad Request)

    问题如标题所述,ajax向SpringMVC Controller传递JSON数据,遇到了错误"Failed to load resource: the server responded w ...

最新文章

  1. netty如何实现零拷贝
  2. 11个有用的移动网页开发App和HTML5框架
  3. 三星i9018root方法
  4. leetcode 1044. Longest Duplicate Substring | 1044. 最长重复子串(Rabin Karp算法)
  5. 先知模型 facebook_Facebook先知
  6. 未能加载文件或程序集“Autofac, Version=3.4.0.0,
  7. c语言有啥简单的小程序,c语言-简单小程序-简单算法
  8. php统计在一个页面停留时间,php记录页面停留时间的代码
  9. set.seed(7)什么意思
  10. Parallel Computing–Cannon算法 (MPI 实现)
  11. 喵哈哈村的魔法考试 Round #14 (Div.2) 题解
  12. baiduexporter+Aria在Chrome最新版上的尝试(2020.07)
  13. JS实现浏览器菜单命令
  14. android tasker,Android 神器,Tasker 实战
  15. 对象存储 Bucket
  16. CentOS Firefox播放视频--安装Flash插件
  17. 安卓手机刷入面具Magisk
  18. 计算机word铁路试题,计算机word试题含答案
  19. 单片机与 PC 机串口通信实验
  20. 模拟高校的三个老师同时分发80份学习笔记

热门文章

  1. debian 8显示中文
  2. 史上最强像素画教程「Pixel Art4」像素房間教學本
  3. 讨论 | 解决PCB设计难题,痛击风险漏洞
  4. PayPal助中国手机游戏开发商制胜海外市场
  5. 6招教你网购婚纱一样好
  6. ucosii入门验证
  7. leetcode292. Nim 游戏(java python3)
  8. java webscoket聊天室
  9. 全球及中国金刚石合成机行业盈利模式及需求规模预测报告(2022-2027)
  10. MTK平台发展及各芯片功能介绍