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使用exif获取图片经纬度的示例代码
Dec 11 Vue.js
全面解析Vue中的$nextTick
Dec 24 Vue.js
vue 动态生成拓扑图的示例
Jan 03 Vue.js
vue keep-alive的简单总结
Jan 25 Vue.js
vue项目配置 webpack-obfuscator 进行代码加密混淆的实现
Feb 26 Vue.js
vue实现简单数据双向绑定
Apr 28 Vue.js
vue使用Google Recaptcha验证的实现示例
Aug 23 Vue.js
vue使用wavesurfer.js解决音频可视化播放问题
Apr 04 Vue.js
vue如何实现关闭对话框后刷新列表
Apr 08 Vue.js
vue route新窗口跳转页面并且携带与接收参数
Apr 10 Vue.js
vue打包时去掉所有的console.log
Apr 10 Vue.js
vue-treeselect的基本用法以及解决点击无法出现拉下菜单
Apr 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 header()函数使用说明
2008/07/10 PHP
mac下安装nginx和php
2013/11/04 PHP
php封装的验证码工具类完整实例
2016/10/19 PHP
PHP实现的观察者模式实例
2017/06/21 PHP
详解PHP使用Redis存储session时的一个Warning定位
2017/07/05 PHP
javascript学习网址备忘
2007/05/29 Javascript
JS无限树状列表实现代码
2011/01/11 Javascript
表单序列化与jq中的serialize使用示例
2014/02/21 Javascript
父节点获取子节点的字符串示例代码
2014/02/26 Javascript
JS清除选择内容的方法
2015/01/29 Javascript
JavaScript原生对象之Date对象的属性和方法详解
2015/03/13 Javascript
MVC Ajax Helper或Jquery异步加载部分视图
2015/11/29 Javascript
jQuery内容过滤选择器用法示例
2016/09/09 Javascript
jquery实现input框获取焦点的简单实例
2017/01/26 Javascript
vue轮播图插件vue-awesome-swiper的使用代码实例
2017/07/10 Javascript
vue跨域解决方法
2017/10/15 Javascript
微信小程序身份证验证方法实现详解
2019/06/28 Javascript
layui 地区三级联动 form select 渲染的实例
2019/09/27 Javascript
JS绘图Flot应用图形绘制异常解决方案
2020/10/16 Javascript
[01:31:22]Ti4 循环赛第四日附加赛LGD vs Mouz
2014/07/13 DOTA
python中使用sys模板和logging模块获取行号和函数名的方法
2014/04/15 Python
Python爬虫抓取手机APP的传输数据
2016/01/22 Python
python实现折半查找和归并排序算法
2017/04/14 Python
python读取文本中的坐标方法
2018/10/14 Python
Selenium定时刷新网页的实现代码
2018/10/31 Python
Python日期格式和字符串格式相互转换的方法
2020/02/18 Python
从Pytorch模型pth文件中读取参数成numpy矩阵的操作
2021/03/04 Python
英国领先的运动物理治疗供应公司:Vivomed
2018/07/14 全球购物
美国智能家居专家:tink
2019/06/04 全球购物
explicit和implicit的含义
2012/11/15 面试题
法制报告会主持词
2014/04/02 职场文书
2014年项目工作总结
2014/11/24 职场文书
python 自动化偷懒的四个实用操作
2021/04/11 Python
python内置进制转换函数的操作
2021/06/02 Python
javascript实现计算器功能详解流程
2021/11/01 Javascript
SQLServer权限之只开启创建表权限
2022/04/12 SQL Server