美文网首页
Flask编写简单的api+Vue-cli3跨域

Flask编写简单的api+Vue-cli3跨域

作者: Felicity0512 | 来源:发表于2018-12-21 13:50 被阅读0次

之前想着用flask-reseful,结果感觉不好用,百度一下,发现小项目完全没必要用框架,可以直接写api。

简单的API

app.py文件如下:

from flask import Flask, jsonify, request #新增jsonify处理json格式数据,request获取ajax前端发送来的参数。
from flask import render_template

app = Flask(__name__,
static_folder='./vue/dist/static',
template_folder = "./vue/dist")

@app.route('/')
def index():
  return render_template('index.html',name='index')

#定义api接口地址,和请求类型
@app.route('/api/login', methods=('GET', 'POST'))
def login():
  if request.method == 'POST':
    username = request.get_json().get('username') #获取ajax的参数
    password = request.get_json().get('password')
    return jsonify({'username': username,'password': password,'state':'success'}) #返回一个json格式的数据

if __name__ == '__main__':
  app.run()

然后前端部分使用vue的axios发送请求,代码如下:(html的部分直接绑定data,我就不写了)

export default {
  name: 'Register',
  data () {
    return {
      form: {
        username: '',
        password: ''
      }
    }
  },
  methods: {
    onSubmit () {
      axios.get('http://localhost:5000/api/login', {
        params: {
          'username': this.form.username,
          'password': this.form.password
        }
      }).then(function (response) {
        console.log(response.data)
      }).catch(function (error) {
        console.log(error)
      })
    }
  }
}

这样就简单的完成了前端到后端的数据发送。
如果Vue build后,在flask运行没啥问题,但是在vue编译模式下,ajax会报错,提示跨域无法完成数据发送。

Vue-cli3跨域

使用的是vue-cli3,所以找到Vue根目录vue.config.js文件(如果没有,自己创建一个),修改如下:

module.exports = {
  assetsDir: 'static',
  #以下为新增内容
  devServer: {
    proxy: 'http://localhost:5000/'
  }
}

然后再ajax的地方修改url:

axios.get('api/login', { #修改此处的url
  params: {
    'username': this.form.username,
    'password': this.form.password
  }
}).then(function (response) {
  console.log(response.data)
}).catch(function (error) {
  console.log(error)
})

在编译环境测试,跨域问题解决。

在这里推荐一个工具,postman用来验证接口非常方便。验证完成的接口还能整理保存,方便下次使用。

相关文章

  • Flask编写简单的api+Vue-cli3跨域

    之前想着用flask-reseful,结果感觉不好用,百度一下,发现小项目完全没必要用框架,可以直接写api。 简...

  • flask 中实现跨域请求

    pip install flask-cors可以安装flask-cors库,用来处理flask中跨域请求。 当我们...

  • axios发送俩次请求的原因

    其实跨域分为简单跨域请求和复杂跨域请求 简单跨域请求是不会发送options请求的 复杂跨域请求会发送一个预检请求...

  • Flask Web笔记(四)- 表单

    Web 表单 处理web表单的扩展 Flask-WTF 跨域请求伪造保护(CSRF) Flask-WTF 能保护所...

  • Flask Web接口跨域

    Flask Web接口跨域 环境 Python3.7.0 macOS High Sierra 10.13.6 Fl...

  • 使用CORS解决跨域共享

    1. 接口的跨域问题 刚才编写的 GET 和 POST接口,存在一个很严重的问题:不支持跨域请求。解决接口跨域问题...

  • Python + Flask部署服务器

    查看 Python启动的服务 结束进程 启动文件部署 flask 支持跨域问题 设置全局

  • flask支持跨域

    在做flask开发的时候遇到跨越的问题,发现通过以下方式可以解决 res.headers['Access-Cont...

  • flask跨域处理

    fromflask_corsimport* app = Flask(__name__) CORS(app, sup...

  • Flask跨域问题

    前后端分离,前端访问后端flask的请求时出现跨域问题,访问失败。可以使用flask_cor包来解决问题 1. 安...

网友评论

      本文标题:Flask编写简单的api+Vue-cli3跨域

      本文链接:https://www.haomeiwen.com/subject/sgumkqtx.html