【VUE】小白入门(3)前端vue与后端Flask数据传输交互(demo)

前端vue与后端Flask数据传输交互(demo)

1.实现目的

昨天过了一遍vue加flask的教程,然后准备把自己以前写的简单demo变成vue和flask的形式的。
流程:
(1)在前端输入框输入【英文单词】
(2)点击提交按钮,POST到flask后端
(3)得到后端处理【翻译】后,数据显示在前端。
处理数据的部分全在flask后端
前端是vue的,与后端唯一交集在于传数据,so开始吧。

先放结果图![简单demo,不好看认了]
在这里插入图片描述
提交后:
【client端】:
在这里插入图片描述
在这里插入图片描述
【server端】:
在这里插入图片描述
在这里插入图片描述

2.实现代码

用了很多抖机灵的方法
首先server端:app.py里:
queryWords()是根据有道翻译写的一个函数:英译中。不是重点。
(1)新建一个列表WORDTL
words代表单词,tl代表翻译结果【因为可能会有几个意思,就用列表形式,当然queryword()也让他返回一个列表就成】
(2)定义一个新route和方法:

WORDTL=[{
    'words': '',
    'tl': []
}]
@app.route('/tl', methods
### Flask Vue 用户信息交互 在构建基于 Flask后端基于 Vue前端应用程序时,用户信息的交互是一个核心功能。为了实现这一目标,通常会采用 RESTful API 或 GraphQL 来作为前后端通信的方式,在此场景下选择了更常见的 RESTful API 方式。 #### 创建 Flask 后端接口 对于 Flask 部分来说,创建一个用于处理用户信息的路由是非常重要的。这可以通过定义特定 URL 路径来完成,并设置相应的 HTTP 方法(GET/POST)。下面展示了一个简单的例子: ```python from flask import Blueprint, request, jsonify import pymysql.cursors user_bp = Blueprint(&#39;users&#39;, __name__) @user_bp.route(&#39;/api/user/<int:user_id>&#39;, methods=[&#39;GET&#39;]) def get_user(user_id): connection = pymysql.connect(host=&#39;localhost&#39;, user=&#39;root&#39;, password=&#39;&#39;, database=&#39;house_data&#39;, cursorclass=pymysql.cursors.DictCursor) try: with connection.cursor() as cursor: sql = "SELECT * FROM users WHERE id=%s" cursor.execute(sql, (user_id,)) result = cursor.fetchone() return jsonify(result), 200 finally: connection.close() @user_bp.route(&#39;/api/users&#39;, methods=[&#39;POST&#39;]) def add_user(): data = request.get_json() connection = pymysql.connect(host=&#39;localhost&#39;, user=&#39;root&#39;, password=&#39;&#39;, database=&#39;house_data&#39;, cursorclass=pymysql.cursors.DictCursor) try: with connection.cursor() as cursor: sql = &#39;&#39;&#39;INSERT INTO `users` (`email`, `password`) VALUES (%(email)s, %(password)s)&#39;&#39;&#39; affected_rows = cursor.execute(sql, { &#39;email&#39;: data[&#39;email&#39;], &#39;password&#39;: data[&#39;password&#39;] }) if affected_rows > 0: connection.commit() response = {&#39;message&#39;: f"User added successfully"} status_code = 201 else: response = {"error": "Failed to insert into MySQL table"} status_code = 500 return jsonify(response), status_code except Exception as e: raise e finally: connection.close() ``` 这段代码展示了如何通过 GET 请求获取单个用户的详情以及 POST 请求向数据库中添加新用户[^1]。 #### 构建 Vue 前端组件 接下来是在 Vue 应用程序里调用上述 API 接口的部分。这里可以利用 Axios 这样的 HTTP 客户端库来进行网络请求操作。同时也可以借助 Vuex Store 来管理全局状态,比如存储从服务器接收到的数据或者错误消息等。 ```javascript // src/store/modules/user.js export default { namespaced: true, state: () => ({ userInfo: null, error: &#39;&#39; }), mutations: { SET_USER_INFO(state, payload){ state.userInfo = payload; }, CLEAR_ERROR(state){ state.error = &#39;&#39;; } }, actions: { async fetchUserInfo({commit}, userId){ commit(&#39;CLEAR_ERROR&#39;); try{ let res = await axios({ method: &#39;get&#39;, url: `/api/user/${userId}` }); commit(&#39;SET_USER_INFO&#39;, res.data); }catch(error){ console.log(error.response?.data || error.message); commit(&#39;SET_ERROR&#39;, error.response?.data || error.message); } }, async registerNewUser({commit}, userData){ commit(&#39;CLEAR_ERROR&#39;); try{ let res = await axios.post(&#39;/api/users&#39;, userData); alert(res.data.message); } catch(error){ console.log(error.response?.data || error.message); commit(&#39;SET_ERROR&#39;, error.response?.data || error.message); } } } } ``` 以上代码片段说明了怎样在一个名为 `user` 的模块化 Vuex store 中封装用户有关的操作逻辑,包括获取指定 ID 的用户资料(`fetchUserInfo`) 及注册新的账户(`registerNewUser`) 。这些方法可以在任何 Vue 组件内部被触发以执行相应业务流程[^3]。 #### 实现终端命令行界面 如果希望提供一种更加直观的方式来测试或演示系统的某些特性,则可以考虑集成像 vue-web-terminal 这样专门设计用来模拟 Linux Shell 界面的小工具到项目当中去。只需要简单几步就能让开发者们快速上手使用这个插件所提供的强大功能[^4]。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值