jango+vue 前端传递数组,后端接收和打印数组

前端

  • 探索:

原本以为前端是不可以传递数组的,只能传递json字符串,所以也在尝试将数组转化成字符串先传递到后端,后端打印结果是一片乱码,代码如下:专门加上{emulateJSON:true}让数据以非JSON的形式传递,结果无效。

     var qs = require('qs');
     var tableDataT= this.tableData9
     tableDataT = qs.stringify( tableDataT)
     console.log(this.tableData9);
     this.$http.post('/inserttest/', qs.stringify({'tableData9':this.tableData9} )
         {emulateJSON:true}
         ).then(res => {
         var result = JSON.parse(response)
         if (res.data.text == 'ok') {
          // 上传成功的操作
          this.$message.success('已经成功!!')
         } else {
         this.$message.error('错误');
         } 
        console.log("result:",response)
     })
  •  方案:

前端是可以直接传递数组到后端的,知识前端的传递方式和后端的接收方式是要发生相应的改变,是数组。代码如下:注意要加上:traditional:true

      this.$http.get('/inserttest/',{params : {'tableData9': this.tableData9 }
            ,traditional:true}).then(res =>{
          console.log(res);  
          if(res.data.text == 'ok'){
            this.$message.success('保存到数据库')
          }
      },function(res){
          console.log(res.status);
      });
      

 traditional:true阻止深度序列化(看着像乱码,没有保留列表的存储方式),否则获取的列表将是空的。

后端

后端改用获取列表的形式,这里一定要注意的是:getlist("tableData9[]") 

后面的括号[]一定要加上,因为前台发送的数据自动给数组后面加了个[]。代码如下: 

tableData = request.GET.getlist("tableData9[]")

 完成数据交互后,下面就是一系列的数据处理分析和计算了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值