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

打印 上一主题 下一主题

主题 1720|帖子 1720|积分 5170

一、必要预备的工具

下载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文件。输入以下代码。
  1. const { defineConfig } = require('@vue/cli-service')
  2. module.exports = defineConfig({
  3.   transpileDependencies: true,
  4.   lintOnSave:false,
  5. //主要是这部分
  6.   devServer: {
  7.     proxy: {
  8.         '/api': {
  9.             //对应的接口前缀,填入你对应的前缀,后面搭建Flask时会说明
  10.             target: 'http://127.0.0.1:5000',//这里填入你要请求的接口的前缀
  11.             ws:true,//代理websocked
  12.             changeOrigin:true,//虚拟的站点需要更管origin
  13.             secure: false,                   //是否https接口
  14.             pathRewrite:{
  15.                 '^/api':''//重写路径
  16.             }
  17.         }
  18.     }
  19. }
  20. })
复制代码
10、为了可以大概简单的表现打通的效果,我们将App.vue文件,做如下修改(只是为了方便测试,代码无现实意义)。然后在集成终端输入指令npm run serve,启动项目,看是否可以大概正常启动。
  1. <template>
  2.   
  3.   <h1>Vue3</h1>
  4.   <button @click="test()">测试按钮</button>
  5. </template>
  6. <script setup>
  7. function test(){
  8.   console.log(111111)
  9. }
  10. </script>
复制代码

四、搭建Flask框架

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

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

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

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

3、在文件夹下新建一个app.py文件,同时输入以下代码
  1. from flask import Flask
  2. app=Flask(__name__)
  3. @app.route('/')
  4. def index():
  5.     return 'Hello Flask!!!'
  6. if __name__=="__main__":
  7.     app.run(debug=True)
  8.     # debug==True是为了方便修改代码之后,能够不重启项目就能够更新,否则,每次更改代码都需要重新启动项目
  9.     # 其他参数的设置可以查阅文档,这里越简单越好
复制代码
点击运行,可以看到如下效果(告诫这里暂时不管),将地址在浏览器打开。

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

五、打通Vue与Flask

到这里,我们前后两个框架就搭建好了,也都启动了项目,接下来将它们打通。我们这里把Vue搭建的称为前端,Flask搭建的称为后端。这里我们前后端都必要启动起来。(涉及的代码不考虑健壮性等,只是为了测试)
如果中途改了配置文件,必要重新启动项目,以便代码见效。
1、打开前端,修改App.vue 内里的代码。
  1. <template>
  2.   
  3.   <h1>Vue3</h1>
  4.   <button @click="test()">测试按钮</button>
  5. </template>
  6. <script setup>
  7. import axios from 'axios';
  8. function test(){
  9.   axios.get('/http://127.0.0.1:5000/api/axios').
  10.   then(res=>{
  11.     console.log(res)
  12.   })
  13. }
  14. </script>
复制代码
2、打开后端,修改app.py文件
  1. from flask import Flask
  2. from flask_cors import CORS
  3. app=Flask(__name__)
  4. CORS(app)
  5. @app.route('/')
  6. def index():
  7.     return 'Hello Flask!!!'
  8. @app.route('/api/axios')
  9. def msg():
  10.     return '需要传递给前端的数据'
  11. if __name__=="__main__":
  12.     app.run(debug=True)
  13.     # debug==True是为了方便修改代码之后,能够不重启项目就能够更新,否则,每次更改代码都需要重新启动项目
  14.     # 其他参数的设置可以查阅文档,这里越简单越好
复制代码
3、此时,我们先检察前后端是否可以大概正常启动(如果不能,重启项目或检查代码是否有错)。革新前端页面,点击测试按钮,可以看到控制已经收到传过去的数据。

4、发送前端数据到后端,修改App.vue代码。
  1. <template>
  2.   
  3.   <h1>Vue3</h1>
  4.   <button @click="test()">测试按钮</button>
  5.   <button @click="send()">发送数据</button>
  6. </template>
  7. <script setup>
  8. import axios from 'axios';
  9. function test(){
  10.   axios.get('http://127.0.0.1:5000/api/axios').
  11.   then(res=>{
  12.     console.log(res)
  13.   })
  14. }
  15. function send(){
  16.   axios.post('http://127.0.0.1/api/msg',{name:'lily',age:23,school:'麻省理工'}).
  17.   then(res=>{
  18.     console.log(res)
  19.   })
  20. }
  21. </script>
复制代码
修改后端app.py文件
  1. from flask import Flask,request
  2. from flask_cors import CORS
  3. app=Flask(__name__)
  4. CORS(app)
  5. @app.route('/')
  6. def index():
  7.     return 'Hello Flask!!!'
  8. @app.route('/api/axios')
  9. def msg():
  10.     return '需要传递给前端的数据'
  11. @app.route('/api/msg',methods={'POST'})
  12. def message():
  13.     if request.data:
  14.         res=request.data
  15.         print(res)
  16.         # 这里传过来的是bytes类型数据,所以简单处理了一下,但这里主要说明数据是成功传输了过来
  17.         res1=res.decode('utf-8')
  18.         print(res1)
  19.         return '获取数据成功'
  20.     else:
  21.         return '没有数据'
  22. if __name__=="__main__":
  23.     app.run(debug=True)
  24.     # debug==True是为了方便修改代码之后,能够不重启项目就能够更新,否则,每次更改代码都需要重新启动项目
  25.     # 其他参数的设置可以查阅文档,这里越简单越好
复制代码
革新前端页面,点击发送数据,前端控制台可以看到

后端终端可以看到已吸收到前端传来的数据(只看效果,不对数据进行处置惩罚)

至此,前后端打通,也及其简单的实现了前后数据的交互。
六、连接MYSQL数据库

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

2、数据库用户,暗码的检察以及暗码的修改。

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

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

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


6、修改后端app.py文件
  1. from flask import Flask, request
  2. from flask_cors import CORS
  3. # 新添加内容
  4. import pymysql
  5. # 连接
  6. db = pymysql.connect(
  7.     # 这里输入自己的地址,数据库名,用户名,密码
  8.     host='127.0.0.1',
  9.     user='root',  # 用户名
  10.     password='111111',  # 密码
  11.     database='message'  # 数据库名
  12. )
  13. curor = db.cursor()
  14. # 执行sql语句
  15. curor.execute('select * from user')
  16. # 获取数据
  17. res = curor.fetchall()
  18. print(res)
  19. #关闭数据库
  20. db.close()
  21. app = Flask(__name__)
  22. CORS(app)
  23. @app.route('/')
  24. def index():
  25.     return 'Hello Flask!!!'
  26. @app.route('/api/axios')
  27. def msg():
  28.     return '需要传递给前端的数据'
  29. @app.route('/api/msg', methods={'POST'})
  30. def message():
  31.     if request.data:
  32.         res = request.data
  33.         print(res)
  34.         # 这里传过来的是bytes类型数据,所以简单处理了一下,但这里主要说明数据是成功传输了过来
  35.         res1 = res.decode('utf-8')
  36.         print(res1)
  37.         return '获取数据成功'
  38.     else:
  39.         return '没有数据'
  40. if __name__ == "__main__":
  41.     app.run(debug=True)
  42.     # debug==True是为了方便修改代码之后,能够不重启项目就能够更新,否则,每次更改代码都需要重新启动项目
  43.     # 其他参数的设置可以查阅文档,这里越简单越好
复制代码
点击运行,如下,已经从数据库中查询到表user的数据

插入数据,在app.py文件添加如下代码
  1. # 插入数据
  2. sql="insert into user(id,username,password)values(5,'杜甫','6789')"
  3. try:
  4.     curor.execute(sql)
  5.     db.commit()
  6. except:
  7.     db.rollback()
  8. db.close()
复制代码
革新数据库表,发现数据添加成功。(删,改可以自行测试,这里不逐一说明)

自此,后端与数据库打通。前面已经简单说明后端如何给前端通报数据,这里后端可以大概拿到数据库数据,自然就可以通报给前端,然后进行页面渲染。
到这里,Vue+Flask+MySQL已经打通了,接下来就可以正式进行项目开辟,编写符合规范的代码。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

泉缘泉

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表