Django+Vue.js实现前后端数据传递

记录一个Vue.js+Python.Django项目的前后端数据传递实现过程。

Vue框架

新建一个Vue框架的前端项目后,在根目录下会有一个index.html文件,在这个文件里我们引入需要的css文件和js文件。
然后在body标签里有一个div块:

<div id="app"></div>

这样在这个标签内就会引入src文件夹下APP.vue的内容。
在src文件夹下还有一个main.js文件,在这里import一些要用到的模块,比如我们要用ajax实现前后端交互,那么就引入axios模块:

import Axios from 'axios';

接下来我们看APP.vue文件。一个Vue文件主要由三个部分组成,

<template>html</template>
<script>js</script>
<style>css</style>

在template标签内就有一个id="app"的div块,我们就在这个块里写HTML部分。
这里用的是element-ui的element-select标签,这是一个下拉选项框,我们设置当点击的时候就会刷新下拉选项的内容:

<el-select v-model="value" :loading="loading" @click="updateOptions()">
	<el-option v-for="item in options" :key="item.id" :label="item.file" :value="item.id"></el-option>
</el-select>

在script标签内:

export default {
  data() {
      return {
        options: [],
        list: [],//传回后端的参数
      };
  },
  methods:{
    //点击后更新下拉选项
    updateOptions(){
      this.list=[{value:''}, {value:''}];//按需修改
      axios.post('http://127.0.0.1:8000/api/getnewoption/', this.list).then(res=>{
        console.log(res);
        this.options=res.data;
      }).catch((mes)=>{
        this.$message.warning("请求失败")
      });},
  }
}

好了,前端差不多就是这样了,接下来我们要到后端接受前端的请求并返回一个新的options。

Django

在一个Django项目里,我们主要操作view.py文件,在这里我们创建一个前端请求的方法:getnewoption。

def getnewoption(request):
    if request.method == "POST":
        r_list = json.loads(request.body)  # 前端向后端发送的参数
        # 对r_list进行操作,结果存入arr。以dict数据类型{'id': '', 'file': ''}格式存储,方便后续取用;
        arr = []  # 后端返回前端的参数
        return HttpResponse(json.dumps(arr, ensure_ascii=False), content_type='application/json', charset='utf-8')

然后在urls.py文件中import这个函数并添加url:

urlpatterns = [
    url("^getnewoption/", getnewoption)
]

完事儿。

  • 0
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
DjangoVue.js是两个非常流行的Web开发框架,分别用于后和前开发。它们可以很好地进行数据交互,使得前后之间的数据传输变得简单和高效。 在Django,我们可以使用Django的REST框架来创建API接口,将数据JSON格式返回给前。通过定义序列化器,我们可以将Django模型转换为JSON格式并向前发送数据。前可以通过HTTP请求向后获取数据,并进行增删改查等操作。 在Vue.js,我们可以使用Axios库来进行HTTP通信。通过发送HTTP请求,可以从Django获取数据,并在前进行展示和处理。在Vue组件中,我们可以使用Axios来发送GET、POST、PUT等不同类型的请求,与后进行数据交互。获取到数据后,可以使用Vue数据绑定功能来动态展示数据。 同时,为了更好地处理数据交互,可以使用Vuex来进行状态管理。Vuex可以在前应用中集中存储和管理数据,使得数据在不同组件间的共享和传递变得更加便捷。通过Vuex,前可以将从后获取的数据存储在全局状态中,并在不同组件中进行共享和使用。 综上所述,通过DjangoVue.js,前后数据交互变得非常简单和高效。Django提供了强大的API接口,将数据JSON格式发送给前,而Vue.js可以通过Axios库进行HTTP通信,与Django进行数据交互,实现前后的无缝对接。同时,通过Vuex可以方便地进行数据管理和共享。这样的数据交互机制可以为开发者提供更好的开发体验,同时也提高了应用的性能和可维护性。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乐蘼_lemin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值