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+vant实现购物车全选和反选功能
Nov 17 Vue.js
Vue3+elementui plus创建项目的方法
Dec 01 Vue.js
Vue通过阿里云oss的url连接直接下载文件并修改文件名的方法
Dec 25 Vue.js
利用Vue实现简易播放器的完整代码
Dec 30 Vue.js
如何在vue中使用HTML 5 拖放API
Jan 14 Vue.js
如何在Vue项目中添加接口监听遮罩
Jan 25 Vue.js
vue监听键盘事件的相关总结
Jan 29 Vue.js
vue3如何优雅的实现移动端登录注册模块
Mar 29 Vue.js
Vue和Flask通信的实现
May 19 Vue.js
HTML+VUE分页实现炫酷物联网大屏功能
May 27 Vue.js
vue实现水波涟漪效果的点击反馈指令
May 31 Vue.js
vue实现登陆页面开发实践
May 30 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
颠覆常识!无色透明的咖啡诞生了(中日双语)
2021/03/03 咖啡文化
php 删除目录下N分钟前创建的所有文件的实现代码
2013/08/10 PHP
Nigma vs Alliance BO5 第二场2.14
2021/03/10 DOTA
很酷的javascript loading效果代码
2008/06/18 Javascript
JS分割字符串并放入数组的函数
2011/07/04 Javascript
jQuery中校验时间格式的正则表达式小结
2013/09/22 Javascript
可编辑下拉框的2种实现方式
2014/06/13 Javascript
jQuery 过滤方法filter()选择具有特殊属性的元素
2014/06/15 Javascript
js实现图片从左往右渐变切换效果的方法
2015/02/06 Javascript
javascript实现漂亮的拖动层,窗口拖拽特效
2015/04/24 Javascript
JavaScript数组去重的3种方法和代码实例
2015/07/01 Javascript
jQuery限制图片大小的方法
2016/05/25 Javascript
Angular4绑定html内容出现警告的处理方法
2017/11/03 Javascript
详解Chai.js断言库API中文文档
2018/01/31 Javascript
详解如何用typescript开发koa2的二三事
2018/11/13 Javascript
vue通过指令(directives)实现点击空白处收起下拉框
2018/12/06 Javascript
原生javascript自定义input[type=radio]效果示例
2019/08/27 Javascript
JS在Array数组中按指定位置删除或添加元素对象方法示例
2019/11/19 Javascript
[46:23]完美世界DOTA2联赛PWL S2 FTD vs Magma 第一场 11.20
2020/11/23 DOTA
python列表的增删改查实例代码
2018/01/30 Python
Python中出现IndentationError:unindent does not match any outer indentation level错误的解决方法
2020/04/18 Python
Python Django框架单元测试之文件上传测试示例
2019/05/17 Python
在django模板中实现超链接配置
2019/08/21 Python
python颜色随机生成器的实例代码
2020/01/10 Python
Python学习笔记之装饰器
2020/08/06 Python
Coach澳大利亚官方网站:美国著名时尚奢侈品牌
2017/05/24 全球购物
Shell编程面试题
2016/05/29 面试题
高级Java程序员面试要点
2013/08/02 面试题
为什么要使用servlet
2016/01/17 面试题
生物技术专业毕业生求职信范文
2013/12/14 职场文书
家长通知书教师评语
2014/04/17 职场文书
信用社竞聘演讲稿
2014/05/16 职场文书
四风问题个人对照检查材料
2014/09/26 职场文书
师德师风个人整改措施
2014/10/27 职场文书
2014年英语教研组工作总结
2014/12/06 职场文书
初中作文评语集锦
2014/12/25 职场文书