Vue和Flask通信的实现


Posted in Vue.js onMay 19, 2021

安装axios和实现通信

这里我们通过axios来连接Vue前端和Flask后端,使用AJAX请求进行通信。使用如下命令安装

npm install axios

axios的使用格式:

import axios from 'axios';
  export default {
    data: function () {
      return {
        serverResponse: 'res_test'
      };
    },
    methods: {
      getData() {
        // 设置对应python的接口,这里使用的是localhost:5000
        const path = 'http://127.0.0.1:5000/getMsg';
        // 这里要使用 res =>表示返回的数据
        axios.get(path).then(res => {
          // 这里服务器返回response为一个json对象
          // 通过.data来访返回的数据,然后在通过.变量名进行访问
          // 可以直接通过response.data取得key-value
          var msg = res.data.msg;
          this.serverResponse = msg; // 因为不能直接使用this作为指针,因此在这之前将this赋给了then指针
          alter('Success' + response.status + ',' + response.data + ',' + msg); // 成功后显示提示
        }).catch(error => {
          console.error(error);
        });
      }
    },
  }

代码及演示

前端代码

对./components/HelloWorld.vue文件进行改写。代码如下:

<!-- html部分 -->
<template>
  <div>
    <span>{{ serverResponse }}</span>
    <!--这里使用{{}}来引用JavaScript中赋给this的值-->
    <button @click="getData">get data</button>
  </div>
</template>
<!-- js部分 -->
<script>
  import axios from 'axios';
  export default {
    data: function () {
      return {
        serverResponse: 'res_test'
      };
    },
    methods: {
      getData() {
        // 设置对应python的接口,这里使用的是localhost:5000
        const path = 'http://127.0.0.1:5000/getMsg';
        axios.get(path).then(res => {
          // 这里服务器返回response为一个json对象
          // 通过.data来访返回的数据,然后在通过.变量名进行访问
          // 可以直接通过response.data取得key-value
          var msg = res.data.msg;
          this.serverResponse = msg; // 因为不能直接使用this作为指针,因此在这之前将this赋给了then指针
          alter('Success' + response.status + ',' + response.data + ',' + msg); // 成功后显示提示
        }).catch(error => {
          console.error(error);
        });
      }
    },
  }
</script>
<!-- css部分 -->
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
  h1,
  h2 {
    font-weight: normal;
  }

  ul {
    list-style-type: none;
    padding: 0;
  }

  li {
    display: inline-block;
    margin: 0 10px;
  }

  a {
    color: #42b983;
  }
</style>

这里主要实现了通过单击按钮来和服务器端进行交互获得数据并传回前端,将得到的数据重新来对前端进行渲染。

Vue和Flask通信的实现

得到如上页面之后,我们单击get date按钮,就会像后端发送GET请求,后端服务器监听到请求之后就会返回对应的数据。

Vue和Flask通信的实现

客户端代码

from flask import Flask
from flask import jsonify
from flask_cors import CORS

app = Flask(__name__)
cors = CORS(app, resources={r"/getMsg": {"origins": "*"}})


@app.route('/')
def hello_world():
    return 'test!'

# 监听127.0.0.1:5000/getMsg请求
@app.route('/getMsg', methods=['GET', 'POST'])
def home():
    response = {
        'msg': 'Hello, Python !'
    }
    return response


if __name__ == '__main__':
    app.run()

到此这篇关于Vue和Flask通信的实现的文章就介绍到这了,更多相关Vue和Flask通信内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Vue.js 相关文章推荐
详解vue实现坐标拾取器功能示例
Nov 18 Vue.js
详解Vue3 Teleport 的实践及原理
Dec 02 Vue.js
Vue+penlayers实现多边形绘制及展示
Dec 24 Vue.js
vue+openlayers绘制省市边界线
Dec 24 Vue.js
Vue ​v-model相关知识总结
Jan 28 Vue.js
vue 中this.$set 动态绑定数据的案例讲解
Jan 29 Vue.js
Vue 3自定义指令开发的相关总结
Jan 29 Vue.js
详解Vue的七种传值方式
Feb 08 Vue.js
vue项目中的支付功能实现(微信支付和支付宝支付)
Feb 18 Vue.js
vue选项卡切换的实现案例
Apr 11 Vue.js
vue postcss-px2rem 自适应布局
May 15 Vue.js
Vue Element UI自定义描述列表组件
使用这 6个Vue加载动画库来减少我们网站的跳出率
一文带你理解vue创建一个后台管理系统流程(Vue+Element)
详解vue中v-for的key唯一性
解读Vue组件注册方式
May 15 #Vue.js
如何理解Vue简单状态管理之store模式
May 15 #Vue.js
Vue如何实现组件间通信
May 15 #Vue.js
You might like
set_include_path在win和linux下的区别
2008/01/10 PHP
php数组对百万数据进行排除重复数据的实现代码
2010/06/08 PHP
关于js和php对url编码的处理方法
2014/03/04 PHP
jQuery ajax serialize() 方法使用示例
2014/11/02 Javascript
javascript html5移动端轻松实现文件上传
2020/03/27 Javascript
Bootstrap编写导航栏和登陆框
2016/05/30 Javascript
判断数组的最佳方法(推荐)
2016/10/11 Javascript
Vue框架中正确引入JS库的方法介绍
2017/07/30 Javascript
vue在使用ECharts时的异步更新和数据加载详解
2017/11/22 Javascript
详解Vue 中 extend 、component 、mixins 、extends 的区别
2017/12/20 Javascript
JavaScript中常见内置函数用法示例
2018/05/14 Javascript
qrcode生成二维码微信长按无法识别问题的解决
2019/04/04 Javascript
微信小程序云开发之使用云存储
2019/05/17 Javascript
Node.js+ELK日志规范的实现
2019/05/23 Javascript
vue 父组件通过v-model接收子组件的值的代码
2019/10/27 Javascript
Vue 实现html中根据类型显示内容
2019/10/28 Javascript
从零学Python之入门(三)序列
2014/05/25 Python
Python常用正则表达式符号浅析
2014/08/13 Python
Python中的with...as用法介绍
2015/05/28 Python
5款Python程序员高频使用开发工具推荐
2019/04/10 Python
springboot配置文件抽离 git管理统 配置中心详解
2019/09/02 Python
Python学习笔记之函数的参数和返回值的使用
2019/11/20 Python
Python3.6 + TensorFlow 安装配置图文教程(Windows 64 bit)
2020/02/24 Python
python如何调用java类
2020/07/05 Python
聊聊python中的异常嵌套
2020/09/01 Python
python上下文管理的使用场景实例讲解
2021/03/03 Python
下面代码从性能上考虑,有什么问题
2015/04/03 面试题
制冷与电控专业应届生求职信
2013/11/11 职场文书
检察官就职演讲稿
2014/01/13 职场文书
运动会广播稿400字
2014/01/25 职场文书
仓库规划计划书
2014/04/28 职场文书
市场开发与营销专业求职信范文
2014/05/01 职场文书
python3 hdf5文件 遍历代码
2021/05/19 Python
如何理解PHP核心特性命名空间
2021/05/28 PHP
为了顺利买到演唱会的票用Python制作了自动抢票的脚本
2021/10/16 Python
Python 中面向接口编程
2022/05/20 Python