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开发人员的7个最好的VSCode扩展
Jan 20 Vue.js
Vue包大小优化的实现(从1.72M到94K)
Feb 18 Vue.js
vue实现可移动的悬浮按钮
Mar 04 Vue.js
手写Vue2.0 数据劫持的示例
Mar 04 Vue.js
vue中data改变后让视图同步更新的方法
Mar 29 Vue.js
vue引入Excel表格插件的方法
Apr 28 Vue.js
关于vue中如何监听数组变化
Apr 28 Vue.js
Vue通过懒加载提升页面响应速度
May 10 Vue.js
Vue + iView实现Excel上传功能的完整代码
Jun 22 Vue.js
一篇文章告诉你如何实现Vue前端分页和后端分页
Feb 18 Vue.js
VUE使用draggable实现组件拖拽
Apr 06 Vue.js
VUE递归树形实现多级列表
Jul 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
YB217、YB235、YB400浅听
2021/03/02 无线电
php中使用session防止用户非法登录后台的方法
2015/01/27 PHP
PHP实现验证码校验功能
2017/11/16 PHP
PHP根据key删除数组中指定的元素
2019/02/28 PHP
PHP如何使用array_unshift()在数组开头插入元素
2020/09/01 PHP
前端开发的开始---基于面向对象的Ajax类
2010/09/17 Javascript
function foo的原型与prototype属性解惑
2010/11/19 Javascript
设置iframe的document.designMode后仅Firefox中其body.innerHTML为br
2012/02/27 Javascript
jquery form 加载数据示例
2014/04/21 Javascript
JavaScript中的操作符==与===介绍
2014/12/31 Javascript
WordPress中利用AJAX异步获取评论用户头像的方法
2016/01/08 Javascript
jQuery判断浏览器并动态调整select宽度的方法
2016/03/02 Javascript
利用vue-router实现二级菜单内容转换
2016/11/30 Javascript
JavaScript Uploadify文件上传实例
2017/02/28 Javascript
微信小程序开发之map地图实现教程
2017/06/08 Javascript
JS实现集合的交集、补集、差集、去重运算示例【ES5与ES6写法】
2019/02/18 Javascript
js刷新页面location.reload()用法详解
2019/12/09 Javascript
python进阶教程之文本文件的读取和写入
2014/08/29 Python
Python单例模式实例分析
2015/01/14 Python
将Django框架和遗留的Web应用集成的方法
2015/07/24 Python
Python中super()函数简介及用法分享
2016/07/11 Python
Python实现购物评论文本情感分析操作【基于中文文本挖掘库snownlp】
2018/08/07 Python
使用Python批量修改文件名的代码实例
2019/01/24 Python
Django Celery异步任务队列的实现
2019/07/24 Python
Python学习笔记之Zip和Enumerate用法实例分析
2019/08/14 Python
python 实现生成均匀分布的点
2019/12/05 Python
Python 简单计算要求形状面积的实例
2020/01/18 Python
python手写均值滤波
2020/02/19 Python
python统计函数库scipy.stats的用法解析
2020/02/25 Python
浅谈keras通过model.fit_generator训练模型(节省内存)
2020/06/17 Python
python爬虫请求头设置代码
2020/07/28 Python
在Ubuntu中安装并配置Pycharm教程的实现方法
2021/01/06 Python
浅谈css3中calc在less编译时被计算的解决办法
2017/12/04 HTML / CSS
提供世界各地便宜的机票:Sky-tours
2016/07/21 全球购物
甜点店创业计划书
2014/01/27 职场文书