如何将前端Vue3和后端Flask App连接起来并发送数据

前言

我们在上两篇讲解了如何搭建一个vue项目,以及如何配置本地路由;本篇继续讲解如何将前端Vue3和后端Flask App连接起来并发送数据。

步骤一:修改flask中的app.py文件

(假设你现在已经创建好了一个基本的flask项目)

  • ① 在你的flask项目文件夹下安装相关py包:
pip install flask-cors
  • ② 在app.py文件中引入CORS:
from flask_cors import CORS
  • ③ 添加两行代码:
app.config.from_object(__name__)
CORS(app, resources={r'/*': {'origins': '*'}}, supports_credentials=True)
  • 最终我的flask代码如下(示例):
from flask import Flask, jsonify
from flask_cors import CORS

# instantiate the app
app = Flask(__name__)
app.config.from_object(__name__)

# enable CORS
CORS(app, resources={r'/*': {'origins': '*'}}, supports_credentials=True)

# sanity check route
@app.route('/')
def index():
    return


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

步骤二:修改Vue项目代码

(假设你现在已经按照上两篇文章,创建好了一个vue项目)

  • ① 安装axios(运行npm命令之前,确保当前路径是项目文件夹下)
npm install axios --save
  • ② 更改vue页面中的< script>部分,如下:
<script lang="ts" setup>
  import { reactive } from 'vue'
  import axios from 'axios'  //导入axios工具

  const FPath = 'http://localhost:5000/login'  //定义你要连接到flask的路由的路径
  const mqttM = reactive({
    id: '',
    ip: '',
    port: '',
    user: '',
    psw: '',
    topic:''
  })
  const onSubmit = () => {
    console.log('submit!')
    axios.post(FPath,mqttM)  // axios发送post请求到Fpath路径,mqttM是发送的数据
    	.then(res=>{console.log(res.data)})  //将从flask收到的返回值打印到控制台
} 
  </script>
  • 整体页面代码(示例):
    在这里插入图片描述

步骤三:分别启动vue项目和flask项目

  • 在浏览器输入vue启动server的地址,并填写信息提交,在flask项目中就可以看到输出,证明前端Vue3和后端Flask App已经连接起来了

  • vue3前端页面提交:
    在这里插入图片描述

  • flask后端接收:
    在这里插入图片描述

特别说明:

本文所展示的是符合Element Plus官网的样例写法,用了typescript语法糖,如果你项目中没有使用该语法糖,可以参考如下两篇文章:
[1] https://blog.csdn.net/yuelizhe4774/article/details/124320679
[2] https://zhuanlan.zhihu.com/p/311510196

  • 1
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现评论功能需要前后端协同完成,以下是一个简单的实现思路: 1. 前端: 在uniapp中,我们可以使用uni-ui组件库中的评论组件来快速实现评论功能。首先,在需要展示评论的页面中引入评论组件,并设置相应的属性(比如评论列表、评论输入框、评论发送按钮等)。 在用户输入评论并点击发送按钮时,通过uni.request()方法向后端发送请求,将评论内容和相关信息(比如用户id、文章id等)一并传递给后端。 2. 后端: 在Python Web后端中,我们可以使用Flask框架来快速实现后端接口。首先,需要创建一个路由,用于接收前端传递过来的评论信息。 在路由函数中,我们可以通过request.form.get()方法获取前端传递过来的数据,然后将这些数据保存到数据库中。在保存成功后,向前端返回一个成功提示。 具体的代码实现可以参考以下示例: 前端代码: ```html <template> <view> <uni-comment :list="commentList" :placeholder="placeholder" @send="sendComment"></uni-comment> </view> </template> <script> import uniComment from '@/components/uni-comment/uni-comment.vue' export default { components: { uniComment }, data() { return { commentList: [], //评论列表 placeholder: '请输入评论内容', //评论输入框提示文字 articleId: 1, //文章id userId: 2 //用户id } }, methods: { //发送评论 sendComment(content) { uni.request({ url: 'http://localhost:5000/comment', method: 'POST', data: { article_id: this.articleId, user_id: this.userId, content: content }, success: res => { console.log(res.data) } }) } } } </script> ``` 后端代码: ```python from flask import Flask, request, jsonify from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:password@localhost:3306/test' app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False db = SQLAlchemy(app) class Comment(db.Model): id = db.Column(db.Integer, primary_key=True) article_id = db.Column(db.Integer) user_id = db.Column(db.Integer) content = db.Column(db.String(255)) @app.route('/comment', methods=['POST']) def add_comment(): article_id = request.form.get('article_id') user_id = request.form.get('user_id') content = request.form.get('content') comment = Comment(article_id=article_id, user_id=user_id, content=content) db.session.add(comment) db.session.commit() return jsonify({'code': 200, 'msg': '评论成功'}) if __name__ == '__main__': app.run() ``` 以上是一个简单的评论功能实现示例,具体实现还需根据具体需求进行调整,比如可以增加对评论的审核、回复、点赞等功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值