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使用echarts图表自适应的几种解决方案
Dec 04 Vue.js
vue的hash值原理也是table切换实例代码
Dec 14 Vue.js
全面解析Vue中的$nextTick
Dec 24 Vue.js
Vue+penlayers实现多边形绘制及展示
Dec 24 Vue.js
vue导入.md文件的步骤(markdown转HTML)
Dec 31 Vue.js
如何在vue中使用HTML 5 拖放API
Jan 14 Vue.js
如何使用vue3打造一个物料库
May 08 Vue.js
vue中的可拖拽宽度div的实现示例
Apr 08 Vue.js
vue+elementUI实现表格列的显示与隐藏
Apr 13 Vue.js
vue组件vue-esign实现电子签名
Apr 21 Vue.js
vue postcss-px2rem 自适应布局
May 15 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
PHP安装全攻略:APACHE
2006/10/09 PHP
用PHP读取和编写XML DOM的实现代码
2011/02/03 PHP
解决PHP Opcache 缓存刷新、代码重载出现无法更新代码的问题
2020/08/24 PHP
45个JavaScript编程注意事项、技巧大全
2015/02/11 Javascript
JavaScript获取指定元素位置的方法
2015/04/08 Javascript
基于javascript简单实现对身份证校验
2021/01/25 Javascript
JS失效 提示HTML1114: (UNICODE 字节顺序标记)的代码页 utf-8 覆盖(META 标记)的冲突的代码页 utf-8
2017/06/23 Javascript
打字效果动画的4种实现方法(超简单)
2017/10/18 Javascript
微信小程序中使用ECharts 异步加载数据的方法
2018/06/27 Javascript
Nuxt.js SSR与权限验证的实现
2018/11/21 Javascript
详解Vue-cli3.X使用px2rem遇到的问题
2019/08/09 Javascript
微信小程序实现pdf、word等格式文件上传的方法
2019/09/10 Javascript
js函数柯里化的方法和作用实例分析
2020/04/11 Javascript
jQuery实现移动端笔触canvas电子签名
2020/05/21 jQuery
JS实现时间校验的代码
2020/05/25 Javascript
[16:19]教你分分钟做大人——风暴之灵
2015/03/11 DOTA
Python 类与元类的深度挖掘 II【经验】
2016/05/06 Python
django批量导入xml数据
2016/10/16 Python
Python和Java的语法对比分析语法简洁上python的确完美胜出
2019/05/10 Python
搞清楚 Python traceback的具体使用方法
2019/05/13 Python
使用python list 查找所有匹配元素的位置实例
2019/06/11 Python
Python 50行爬虫抓取并处理图灵书目过程详解
2019/09/20 Python
pytorch 实现将自己的图片数据处理成可以训练的图片类型
2020/01/08 Python
解决Jupyter notebook中.py与.ipynb文件的import问题
2020/04/21 Python
python zip()函数的使用示例
2020/09/23 Python
施华洛世奇天猫官方旗舰店:SWAROVSKI
2017/04/17 全球购物
荷兰皇家航空公司官方网站:KLM Royal Dutch Airlines
2017/12/07 全球购物
Electrolux伊莱克斯巴西商店:家用电器、小家电和配件
2018/05/23 全球购物
师范应届生教师求职信
2013/11/05 职场文书
将相和教学反思
2014/02/04 职场文书
感恩父母的演讲稿
2014/05/06 职场文书
写给老师的感谢信
2015/01/20 职场文书
2015年安全工作总结范文
2015/04/02 职场文书
社区干部培训心得体会
2016/01/06 职场文书
详解Oracle数据库中自带的所有表结构(sql代码)
2021/11/20 Oracle
python opencv将多个图放在一个窗口的实例详解
2022/02/28 Python