打通Vue3+Flask(python3)+Mysql-实现简单数据交互

devtools/2025/1/15 21:53:35/

一、需要准备的工具

下载python3,Vscode,pycharm(这里用的社区版),phpstudy_pro,Node.js(建议下载长期支持版本,版本不宜过低,比如18,20),Vue.js(npm install -g @vue/cli,下载速度慢可以设置淘宝镜像)。

这里不具体说明下载步骤,除了python3环境的配置(自行查阅资料),其余工具常规安装即可。

二、查看基本环境。

win+r输入cmd,打开小黑窗,分别验证node,Vue,python。如果如下图所示,说明基本环境是没有问题的。

三、搭建前端Vue框架

1、可以专门新建一个文件夹,用来存放前后端文件。打开新建文件夹,在地址栏选中内容,输入cmd,回车。输入vue create 项目名称(vue create vueproject),我们暂都不考虑命名规范的问题。

2、键盘上下键可以选择vue版本,这里选择第三项,自定义,选中后回车即可。

3、这里选择版本三。接下来我们一直回车即可,不做过多说明。

4、成功之后,是如下界面。

5、接下来,输入cd vueproject,进入当前项目目录,输入npm i,下载项目所需要的依赖。

6、输入npm run serve,启动项目。

7、成功之后,可以在浏览器输入地址,初始页面如下:至此,vue框架就算搭建完成。

8、我们连按两次Ctrl+C退出项目,使用Vscode打开刚才新建的vue项目(将新建的文件夹拖入Vscode即可)。然后,选中项目任意一项,我们右键选择在集成终端中打开。这里我们需要使用axios工具(用来发送请求),所以在终端输入npm i下载axios。

9、接着解决CORS跨域(数据交互时会用上)。找到vue.config.js文件。输入以下代码。

const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({transpileDependencies: true,lintOnSave:false,//主要是这部分devServer: {proxy: {'/api': {//对应的接口前缀,填入你对应的前缀,后面搭建Flask时会说明target: 'http://127.0.0.1:5000',//这里填入你要请求的接口的前缀ws:true,//代理websockedchangeOrigin:true,//虚拟的站点需要更管originsecure: false,                   //是否https接口pathRewrite:{'^/api':''//重写路径}}}
}})

10、为了能够简单的体现打通的效果,我们将App.vue文件,做如下修改(只是为了方便测试,代码无实际意义)。然后在集成终端输入指令npm run serve,启动项目,看是否能够正常启动。

<template><h1>Vue3</h1><button @click="test()">测试按钮</button></template><script setup>
function test(){console.log(111111)
}
</script>

四、搭建Flask框架

1、打开pycharm社区版,选择文件,新建项目,按照要求选择项目路径即可。

我这里是中文版,如果有需要,可以在设置里面的插件,下载中文包,然后重启pycharm即可,插件如下。

2、这里需要使用相应的工具,我们先下载。在设置中找到如下位置,选择标红位置进行添加。

然后搜索flask,然后选择安装软件包。同样的方式,下载Flask-Cors(解决跨域),以及Flask-MYSQL(连接数据库)。

3、在文件夹下新建一个app.py文件,同时输入以下代码

from flask import Flaskapp=Flask(__name__)@app.route('/')
def index():return 'Hello Flask!!!'if __name__=="__main__":app.run(debug=True)# debug==True是为了方便修改代码之后,能够不重启项目就能够更新,否则,每次更改代码都需要重新启动项目# 其他参数的设置可以查阅文档,这里越简单越好

点击运行,可以看到如下结果(警告这里暂时不管),将地址在浏览器打开。

4、这里出现的http://127.0.0.1:5000就是我们在vue.config.js文件为解决跨域需要输入的接口前缀(第二大步第9小步那里)。浏览器打开结果如下。

五、打通Vue与Flask

到这里,我们前后两个框架就搭建好了,也都启动了项目,接下来将它们打通。我们这里把Vue搭建的称为前端,Flask搭建的称为后端。这里我们前后端都需要启动起来。(涉及的代码不考虑健壮性等,只是为了测试)

如果中途改了配置文件,需要重新启动项目,以便代码生效。

1、打开前端,修改App.vue 里面的代码。

<template><h1>Vue3</h1><button @click="test()">测试按钮</button></template><script setup>
import axios from 'axios';
function test(){axios.get('/http://127.0.0.1:5000/api/axios').then(res=>{console.log(res)})
}
</script>

2、打开后端,修改app.py文件

from flask import Flask
from flask_cors import CORSapp=Flask(__name__)
CORS(app)@app.route('/')
def index():return 'Hello Flask!!!'@app.route('/api/axios')
def msg():return '需要传递给前端的数据'if __name__=="__main__":app.run(debug=True)# debug==True是为了方便修改代码之后,能够不重启项目就能够更新,否则,每次更改代码都需要重新启动项目# 其他参数的设置可以查阅文档,这里越简单越好

3、此时,我们先查看前后端是否能够正常启动(如果不能,重启项目或检查代码是否有错)。刷新前端页面,点击测试按钮,可以看到控制已经收到传过去的数据。

4、发送前端数据到后端,修改App.vue代码。

<template><h1>Vue3</h1><button @click="test()">测试按钮</button><button @click="send()">发送数据</button></template><script setup>
import axios from 'axios';
function test(){axios.get('http://127.0.0.1:5000/api/axios').then(res=>{console.log(res)})
}function send(){axios.post('http://127.0.0.1/api/msg',{name:'lily',age:23,school:'麻省理工'}).then(res=>{console.log(res)})
}
</script>

修改后端app.py文件

from flask import Flask,request
from flask_cors import CORSapp=Flask(__name__)
CORS(app)@app.route('/')
def index():return 'Hello Flask!!!'@app.route('/api/axios')
def msg():return '需要传递给前端的数据'@app.route('/api/msg',methods={'POST'})
def message():if request.data:res=request.dataprint(res)# 这里传过来的是bytes类型数据,所以简单处理了一下,但这里主要说明数据是成功传输了过来res1=res.decode('utf-8')print(res1)return '获取数据成功'else:return '没有数据'if __name__=="__main__":app.run(debug=True)# debug==True是为了方便修改代码之后,能够不重启项目就能够更新,否则,每次更改代码都需要重新启动项目# 其他参数的设置可以查阅文档,这里越简单越好

刷新前端页面,点击发送数据,前端控制台可以看到

后端终端可以看到已接收到前端传来的数据(只看结果,不对数据进行处理)

至此,前后端打通,也及其简单的实现了前后数据的交互。

六、连接MYSQL数据库

1、这里我们使用的是小皮系统(个人觉得比较简单好用,而且不用单独区下载MYSQL)。首先打开软件。这里启动的是MYSQL5.7

2、数据库用户,密码的查看以及密码的修改。

3、这里我们下载如下工具,方便操作数据库表。下载完后,直接打开。

4、新建会话,输入刚刚查看的用户名与密码,以及端口号(默认即可),点击打开即可

5、新建数据库message,以及表user。(这里不具体说明,不同的工具建立数据库以及数据库表大同小异,不会可以查阅相关资料,这里不一步一步说明)。一般是右键新建数据库,然后选中数据库,选择创建新的表,然后设计需要的字段,注意的是每一个表需要设计主键(选中行,右键创建新的索引-PRIMARY)。

6、修改后端app.py文件

from flask import Flask, request
from flask_cors import CORS# 新添加内容
import pymysql
# 连接
db = pymysql.connect(# 这里输入自己的地址,数据库名,用户名,密码host='127.0.0.1',user='root',  # 用户名password='111111',  # 密码database='message'  # 数据库名
)curor = db.cursor()
# 执行sql语句
curor.execute('select * from user')
# 获取数据
res = curor.fetchall()
print(res)#关闭数据库
db.close()app = Flask(__name__)
CORS(app)@app.route('/')
def index():return 'Hello Flask!!!'@app.route('/api/axios')
def msg():return '需要传递给前端的数据'@app.route('/api/msg', methods={'POST'})
def message():if request.data:res = request.dataprint(res)# 这里传过来的是bytes类型数据,所以简单处理了一下,但这里主要说明数据是成功传输了过来res1 = res.decode('utf-8')print(res1)return '获取数据成功'else:return '没有数据'if __name__ == "__main__":app.run(debug=True)# debug==True是为了方便修改代码之后,能够不重启项目就能够更新,否则,每次更改代码都需要重新启动项目# 其他参数的设置可以查阅文档,这里越简单越好

点击运行,如下,已经从数据库中查询到表user的数据

插入数据,在app.py文件添加如下代码

# 插入数据
sql="insert into user(id,username,password)values(5,'杜甫','6789')"
try:curor.execute(sql)db.commit()
except:db.rollback()db.close()

刷新数据库表,发现数据添加成功。(删,改可以自行测试,这里不一一说明)

自此,后端与数据库打通。前面已经简单说明后端如何给前端传递数据,这里后端能够拿到数据库数据,自然就可以传递给前端,然后进行页面渲染。

到这里,Vue+Flask+MySQL已经打通了,接下来就可以正式进行项目开发,编写符合规范的代码。


http://www.ppmy.cn/devtools/104013.html

相关文章

java实现线性反馈移位寄存器实例

题目: 3级线性反馈移位寄存器C3=1时可有4种线性反馈函数,设其初始状态为(a1,a2,a3)=(1,0,1),输出由它们得到的密钥流,并分别利用生成的密钥流对明文“0x0123456789ABCDEF”进行加密,输出加密后的结果,再对密文进行解密,输出解密后的结果。 1.分析 相关题目详解:3级线…

C_08_动态内存申请

动态内存申请 首先核心就是熟记 内存图以及内存中每个区域不同的功能&#xff1a; 引入 #include <stdio.h> int main(int argc, char const *argv[]) {int len 0;printf("请输入数组长度\n");scanf("%d",&len);//此时我们想将数组的长度动态设…

C#入门篇7(面向对象)

目录 一、值传递和引用传递 1、概念 2、主要区别 3、用法 二、字符串 1、字符串的不可变性可以将字符串看作只读字符数组 2、字符串提供的各种方法 三、继承 1、 概念 2、格式 3、示例 4、子类继承于父类什么&#xff1f; 5、继承的特性 6、查看类图 四、new关键字…

Linux 命令行快捷键

Linux 命令行快捷键_linux删除一个单词-CSDN博客 涉及在linux命令行下进行快速移动光标、命令编辑、编辑后执行历史命令、Bang(!)命令、控制命令等。让basher更有效率。 常用 Ctrl左右键:在单词之间跳转 Ctrla: 跳到本行的行首 Ctrle: 跳到页尾 Ctrlu&#xff1a;删除当前光标…

51单片机——模块化编程

1、模块化编程介绍 传统方式编程&#xff1a;所有的函数均放在main.c里&#xff0c;若使用的模块比较多&#xff0c;则一个文件内会有很多的代码&#xff0c;不利于代码的组织和管理&#xff0c;而且很影响编程者的思路。 模块化编程&#xff1a;把各个模块的代码放在不同的.…

EXCEL文件如何批量加密,有什么方法

EXCEL文件的加密&#xff0c;通常在EXCEL软件上进行设置&#xff0c;它有打开密码与写保护密码&#xff0c;如果有多个文件的话&#xff0c;想通过一键设置的方法进行密码设置&#xff0c;那么它通常需要用到第三方软件进行批处理&#xff0c;因为EXCEL软件只能对当前打开的文件…

G722.1.C简单介绍

目录 一、编码参数二、编码特性三、解码特性四、应用领域五、优缺点 G.722.1 Annex C ("G.722.1C") 引用其他文章介绍&#xff1a; This paper describes the low-complexity 14 kHz audio coding algorithm which has been recently standardized by ITU-T as Recom…

Milvus向量数据库-数据备份与恢复

前言 随着Milvus版本的持续迭代&#xff0c;越来越多的用户将其作为构建生产环境的向量数据服务使用。作为数据服务使用&#xff0c;其中的运维、数据安全、容灾备份自然是用户最关心且不容有失的需求。为解决这一需求&#xff0c;Milvus-backup项目工具应运而生。 Milvus-ba…