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+iview分页组件的封装
Nov 17 Vue.js
vue3.0实现点击切换验证码(组件)及校验
Nov 18 Vue.js
vue从后台渲染文章列表以及根据id跳转文章详情详解
Dec 14 Vue.js
vue 动态生成拓扑图的示例
Jan 03 Vue.js
vue3自定义dialog、modal组件的方法
Jan 04 Vue.js
vuex的使用步骤
Jan 06 Vue.js
vue实现一个获取按键展示快捷键效果的Input组件
Jan 13 Vue.js
Vue常用API、高级API的相关总结
Feb 02 Vue.js
Vue实现下拉加载更多
May 09 Vue.js
Vue2.0搭建脚手架
Mar 13 Vue.js
详解Vue3使用axios的配置教程
Apr 29 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
详解WordPress中调用评论模板和循环输出评论的PHP函数
2016/01/05 PHP
Yii2简单实现给表单添加验证码的方法
2016/07/18 PHP
php微信公众平台开发(三)订阅事件处理
2016/12/06 PHP
自动更新作用
2006/10/08 Javascript
javascript获取当前日期时间及其它操作函数
2011/01/11 Javascript
ECMAScript6的新特性箭头函数(Arrow Function)详细介绍
2014/06/07 Javascript
js防止页面被iframe调用的方法
2014/10/30 Javascript
IE及IE6浏览器中判断JS文件加载成功失败的方法
2015/02/18 Javascript
jQuery实现图片与文字描述左右滑动自动切换的方法
2015/07/27 Javascript
jquery实现鼠标滑过后动态图片提示效果实例
2015/08/10 Javascript
jQuery EasyUI Dialog拖不下来如何解决
2015/09/28 Javascript
Javascript 获取鼠标当前的位置实现方法
2016/10/27 Javascript
Bootstrap的class样式小结
2016/12/01 Javascript
JS中mouseup事件丢失的原因与解决办法
2017/06/14 Javascript
微信小程序 跳转传递数据的实例
2017/07/06 Javascript
Vue 2.5.2下axios + express 本地请求404的解决方法
2018/02/21 Javascript
微信小程序bindtap事件与冒泡阻止详解
2019/08/08 Javascript
vue自动化路由的实现代码
2019/09/30 Javascript
Vue router安装及使用方法解析
2020/12/02 Vue.js
python用于url解码和中文解析的小脚本(python url decoder)
2013/08/11 Python
python网络编程实例简析
2014/09/26 Python
python中zip和unzip数据的方法
2015/05/27 Python
Python随手笔记第一篇(2)之初识列表和元组
2016/01/23 Python
Python中利用Scipy包的SIFT方法进行图片识别的实例教程
2016/06/03 Python
Python实现base64编码的图片保存到本地功能示例
2018/06/22 Python
执行Python程序时模块报错问题
2020/03/26 Python
新手学python应该下哪个版本
2020/06/11 Python
解决Python3.8运行tornado项目报NotImplementedError错误
2020/09/02 Python
python3字符串输出常见面试题总结
2020/12/01 Python
iostream与iostream.h的区别
2015/01/16 面试题
应届毕业生的自我鉴定
2013/11/13 职场文书
演讲稿怎么写才完美
2014/01/02 职场文书
高校教师思想汇报
2014/01/11 职场文书
工程技术员岗位职责
2014/03/02 职场文书
学生会部长竞聘书
2014/03/31 职场文书
使用Html+Css实现简易导航栏功能(导航栏遇到鼠标切换背景颜色)
2021/04/07 HTML / CSS