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中音频wavesurfer.js的使用方法
Feb 20 Vue.js
在vue中通过render函数给子组件设置ref操作
Nov 17 Vue.js
在Vue中使用CSS3实现内容无缝滚动的示例代码
Nov 27 Vue.js
vue el-upload上传文件的示例代码
Dec 21 Vue.js
如何在vue中使用HTML 5 拖放API
Jan 14 Vue.js
如何在 Vue 中使用 JSX
Feb 14 Vue.js
vue+element ui实现锚点定位
Jun 29 Vue.js
vue使用Google Recaptcha验证的实现示例
Aug 23 Vue.js
前端vue+express实现文件的上传下载示例
Feb 18 Vue.js
Vue+Flask实现图片传输功能
Apr 01 Vue.js
Vue OpenLayer测距功能的实现
Apr 20 Vue.js
vue二维数组循环嵌套方式 循环数组、循环嵌套数组
Apr 24 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
php使用strtotime和date函数判断日期是否有效代码分享
2013/12/25 PHP
yii实现CheckBox复选框在同一行显示的方法
2014/12/03 PHP
ThinkPHP通过AJAX返回JSON的两种实现方法
2014/12/18 PHP
PHP+apc+ajax实现的ajax_upload上传进度条代码
2016/01/25 PHP
PHP函数用法详解【初始化、嵌套、内置函数等】
2020/06/02 PHP
一段多浏览器的&quot;复制到剪贴板&quot;javascript代码
2007/03/27 Javascript
javascript jscroll模拟html元素滚动条
2012/12/18 Javascript
js实现支持手机滑动切换的轮播图片效果实例
2015/04/29 Javascript
javascript实现选中复选框后相关输入框变灰不可用的方法
2015/08/11 Javascript
BootStrap实用代码片段之一
2016/03/22 Javascript
JQuery给select添加/删除节点的实现代码
2016/04/26 Javascript
jQuery+ajax实现滚动到页面底部自动加载图文列表效果(类似图片懒加载)
2016/06/07 Javascript
jQuery实现的仿百度,仿谷歌搜索下拉框效果示例
2016/12/30 Javascript
分享十三个最佳JavaScript数据网格库
2017/04/07 Javascript
解决修复npm安装全局模块权限的问题
2018/05/17 Javascript
Node错误处理笔记之挖坑系列教程
2018/06/05 Javascript
vue.js计算属性computed用法实例分析
2018/07/06 Javascript
Laravel admin实现消息提醒、播放音频功能
2019/07/10 Javascript
浅谈vue3中effect与computed的亲密关系
2019/10/10 Javascript
vue使用过滤器格式化日期
2021/01/20 Vue.js
[44:01]2018DOTA2亚洲邀请赛3月30日 小组赛B组 EG VS paiN
2018/03/31 DOTA
详解Python设计模式编程中观察者模式与策略模式的运用
2016/03/02 Python
Python中的条件判断语句与循环语句用法小结
2016/03/21 Python
python实现随机漫步方法和原理
2019/06/10 Python
python实现图片转换成素描和漫画格式
2020/08/19 Python
python操作ini类型配置文件的实例教程
2020/10/30 Python
土耳其国际性时尚购物网站:Modanisa
2018/01/19 全球购物
Servlet的实例是在生命周期什么时候创建的?配置servlet最重要的是什么?
2012/05/30 面试题
出纳岗位职责范本
2013/12/01 职场文书
面试后感谢信怎么写
2014/02/01 职场文书
邓小平理论心得体会
2014/09/09 职场文书
开展党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
简单的个人租房协议书范本
2014/11/26 职场文书
2016干部作风整顿心得体会
2016/01/22 职场文书
Python使用protobuf序列化和反序列化的实现
2021/05/19 Python
Win11开始菜单添加休眠选项
2022/04/19 数码科技