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

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

<div id="app">div>

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

import Axios from 'axios';

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

<template>htmltemplate>
<script>jsscript>
<style>cssstyle>

在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项目里,我们主要操作view.py文件,在这里我们创建一个前端请求的方法:getnewoption。

def getnewoption(request):
    if request.method == "POST":
        r_list = json.loads(request.body)

        arr = []
        return HttpResponse(json.dumps(arr, ensure_ascii=False), content_type='application/json', charset='utf-8')

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

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

完事儿。

Original: https://blog.csdn.net/meiyanwan/article/details/122651000
Author: 乐蘼_lemin
Title: Django+Vue.js实现前后端数据传递

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/732953/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球