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

一、需要准备的工具

下载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,//代理websocked
            changeOrigin:true,//虚拟的站点需要更管origin
            secure: 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 Flask



app=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 CORS


app=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 CORS


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.data
        print(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.data
        print(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已经打通了,接下来就可以正式进行项目开发,编写符合规范的代码。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/929464.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot的validation参数校验

文章目录 前言一、引入validation 依赖二、validation中的注解说明 &#xff08;1&#xff09;Validated&#xff08;2&#xff09;Valid&#xff08;3&#xff09;NotNull&#xff08;4&#xff09;NotBlank&#xff08;5&#xff09;NotEmpty&#xff08;6&#xff09;Patte…

Webhook应用指南:借助mc工具实现智能自动化

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 &#x1f38f;&#xff1a;你只管努力&#xff0c;剩下的交给时间 &#x1f3e0; &#xff1a;小破站 Webhook应用指南&#xff1a;借助mc工具实现智能自动化 前言Webhook 基础知识什么是 Webhook&…

【全网最新】若依管理系统基于SpringBoot的前后端分离版本配置部署

目录 提前准备&#xff1a; 下载源代码 设置依赖 设置后台连接信息 运行后台 运行前端 安装npm依赖 启动前端 登录网页客户端 提前准备&#xff1a; 1、安装mysql 5以上就可以。 2、安装redis. 3、安装npm npm下载地址&#xff1a;https://nodejs.org/dist/v22.12…

科学演进:现代视角下的亚里士多德理论100例

科学演进&#xff1a;现代视角下的亚里士多德理论100例 引言 亚里士多德&#xff08;Aristotle&#xff09;&#xff0c;公元前384年出生于希腊北部的斯塔吉拉&#xff0c;是古希腊最杰出的哲学家、科学家和教育家之一。他不仅是柏拉图的学生&#xff0c;深入学习了柏拉图的理…

98.【C语言】数据结构之队列

目录 1.定义 2.队头和队尾 3.示意图 4.实现队列 两种解决方法 1.使用双向带头循环链表 2.为单向链表再定义一个尾指针tail 操作队列的函数 初始化函数QueueInit 插入函数QueuePush 删除函数QueuePop 写法1 注意 写法2 计算队列大小函数QueueSize 销毁函数Queu…

SQL项目实战与综合应用——项目设计与需求分析

项目设计与需求分析是软件开发过程中的核心环节&#xff0c;尤其在涉及数据库的应用时&#xff0c;良好的设计将直接影响到项目的可扩展性、性能和维护性。本文将深入探讨数据库设计的最佳实践&#xff0c;结合 C 与 SQL 的实际应用场景&#xff0c;涵盖项目需求收集、数据库设…

TCP的“可靠性”(下)——三次握手四次挥手

目录 建立连接&#xff08;三次握手&#xff09;为啥要进行握手&#xff1f;&#xff1f;意义何在&#xff1f;&#xff1f;常见面试题&#xff1a;为啥必须是三次握手&#xff1f; 断开连接&#xff08;四次挥手&#xff09;三次握手和四次挥手的相同点和不同点连接过程中涉及…

煤矿 35kV 变电站 3 套巡检机器人 “上岗”,力破供电瓶颈

近日&#xff0c;杭州旗晟智能科技与甘肃陈家沟煤矿35kV变电站配电室的三套智能巡检机器人线下测试顺利完成&#xff0c;并成功交付使用&#xff0c;这为陈家沟煤矿的电力运维工作注入了全新的活力与强大的技术支撑。 一、项目背景 甘肃陈家沟煤矿35kV变电站于2024年3月13日动…

【AI系统】推理参数

推理参数 本文将介绍 AI 模型网络参数方面的一些基本概念&#xff0c;以及硬件相关的性能指标&#xff0c;为后面让大家更了解模型轻量化做初步准备。值得让人思考的是&#xff0c;随着深度学习的发展&#xff0c;神经网络被广泛应用于各种领域&#xff0c;模型性能的提高同时…

列表| 习题+思维导图

列表习题 1. 已知列表xlist(range(9))&#xff0c;那么执行语句del x[:2]之后&#xff0c;x的值为&#xff08;D&#xff09; A.[1&#xff0c;3&#xff0c;5&#xff0c;7&#xff0c;9] B.[1&#xff0c;3&#xff0c;5&#xff0c;7] C.[0&#xff0c;1&#xff0c;3&a…

在freeBSD上开启IPSec内核功能

我使用的版本strongSwan 6.0.0, FreeBSD 14.1-RELEASE, amd64 背景 在freeBSD上配置strongSwan&#xff0c;启动charon时&#xff0c;一直遇到如下错误&#xff1a; unable to set IPSEC_POLICY on socket: Protocol not available过程 此前查阅的某个文档说 freeBSD已经默…

初识树(二叉树,堆,并查集)

本篇博客将涉及到一些专业名词&#xff1a;结点、深度、根、二叉树、满二叉树、完全二叉树、堆、并查集等。 概要 树型结构是一类重要的非线性数据结构。其中以树和二叉树最…

知从科技闪耀汽车智能底盘大会:共探软件安全新篇章

在汽车科技蓬勃发展的浪潮中&#xff0c;智能底盘技术正成为引领行业变革的关键力量。11月27日-28日&#xff0c;盖世汽车 2024 第四届汽车智能底盘大会盛大召开&#xff0c;上海知从科技有限公司受邀出席此次盛会&#xff0c;与众多汽车领域的精英齐聚一堂&#xff0c;共话智能…

TCP Analysis Flags 之 TCP Spurious Retransmission

前言 默认情况下&#xff0c;Wireshark 的 TCP 解析器会跟踪每个 TCP 会话的状态&#xff0c;并在检测到问题或潜在问题时提供额外的信息。在第一次打开捕获文件时&#xff0c;会对每个 TCP 数据包进行一次分析&#xff0c;数据包按照它们在数据包列表中出现的顺序进行处理。可…

241205_使用本地vosk模型实现流式语音识别

241205_使用本地vosk模型实现流式语音识别 上一篇我们使用了vosk模型实现了本地的语音识别&#xff0c;但是存在一个严重的问题&#xff0c;因为我们采用的是整段音频录制结束之后再进行转文字并进行关键字检索&#xff0c;就会导致识别不实时&#xff0c;在环境噪音较为复杂&…

CMake笔记之在CMakeLists.txt文件中开启Debug模式

CMake笔记之在CMakeLists.txt文件中开启Debug模式 code review! 文章目录 CMake笔记之在CMakeLists.txt文件中开启Debug模式1.设置 CMake 的构建类型2.添加编译器的调试选项3.使用 CMAKE_CXX_STANDARD (可选)4.编译和构建5.针对多配置生成器6.最终示例 CMakeLists.txt 1.设置 …

VINS_MONO视觉导航算法【一】基础知识介绍

文章目录 VINS-Mono其他文章说明简介单目相机存在的尺度不确定问题缺乏深度信息尺度等价性对极几何和三角化平移和深度的关系解决尺度不确定问题的方法视觉惯性里程计&#xff08;VIO&#xff09;初始尺度估计持续尺度校正 摄像头数据处理直接法&#xff08;Direct Method&…

【CC2530开发基础篇】光敏和热敏传感器

一、前言 1.1 开发背景 本实验通过CC2530单片机接入光敏传感器和热敏传感器&#xff0c;进行数据采集与检测&#xff0c;并将检测结果通过串口终端输出。光敏传感器和热敏传感器是常见的环境感知设备&#xff0c;分别用于测量光强和温度。在实际应用中&#xff0c;这些传感器…

计算机网络-GRE基础实验二

前面我们学习了GRE隧道的建立以及通过静态路由指向的方式使得双方能够网络互联&#xff0c;但是通过静态路由可能比较麻烦&#xff0c;GRE支持组播、单播、广播因此可以在GRE隧道中运行动态路由协议使得网络配置更加灵活。 通过前面的动态路由协议的学习我们知道动态路由协议都…

中建海龙:科技创新引领建筑业革新,铸就行业影响力

在建筑业这个古老而又充满活力的行业中&#xff0c;中建海龙科技有限公司&#xff08;以下简称“中建海龙”&#xff09;凭借其卓越的科技实力和一系列荣誉奖项&#xff0c;正逐步确立其在建筑工业化领域的领导地位&#xff0c;并对整个行业产生了深远影响。 中建海龙自成立以来…