全网最菜鸟Linux宝塔面板部署Flask项目(Flask+MySQL)

1.引言

        Flask 是一个微框架,它提供了简单而灵活的接口,使得开发者可以快速上手并创建Web应用。适用于中小型Web应用的开发,而MySQL 是一种关系型数据库管理系统(RDBMS),以其稳定性、可靠性和性能著称。用Flask和MySQL进行交互,大大提高了项目的灵活性,提高开发效率。

        本文中提出的可能存在的一些问题,都是笔者亲历,也许有所不周,请多海涵,如果对flask框架有研究意向的话,也可以先收藏本文以便后续部署

2. 购买服务器+安装宝塔面板

这部分内容可以参考笔者前一篇教学文章:

全网最菜鸟Linux宝塔面板部署若依前后端分离版教程(最简单版本)_宝塔部署若依项目教程-CSDN博客

3.修改Flask入口文件

常规的Flask项目中的入口文件是app.py

下图红框中的MySQL相关配置设置你自己的数据库名称和密码,这里我用“ruoyi-vue-test”当作测试名称

注意:下图黄色框中的配置,Flask 应用程序默认尝试连接的 /var/run/mysqld/mysqld.sock

如果部署到服务器端务必看好MySQL的相关配置,把这一条改成其配置中的路径,查看MySQL配置如下图2,笔者的MySQL配置是/tmp/mysql.sock则加入

app.config['MYSQL_UNIX_SOCKET'] = '/tmp/mysql.sock'  # 使用正确的 Unix socket 路径

4.编写requirements.txt文件

在项目文件夹中编写requirements.txt文件,requirements.txt文件中包含的是你的项目中除了python自带库之外所有引入的第三方库(如flask,flask_cors,flask_mysqldb,dashscope, requests,uuid等)

而在部署flask项目时,创建虚拟环境时,面板会根据你的项目中的requirements.txt文件去安装你所需要的库

下图是笔者这个项目编写的requirement.txt文件,可以直接写第三方库名字,也可以写库名加版本号,没有版本号则默认下载最新的

5.添加数据库

在宝塔面板的数据库里面添加数据库,配置内容与修改的入口文件保持一致

创建完成后导入数据库的sql文件,注意utf8mb4是数据库字符集,转储数据库为sql文件时注意当前数据库的字符集规则。

注:sql文件由数据库连接软件(如Navicat)转储数据和结构生成。

6.上传文件到宝塔面板

Flask应用可以把整个项目一起打包放到宝塔面板上,最好是打成压缩包再上传,然后解压

7.部署Flask

在左侧导航栏中选择网站,然后选择Python项目,如果第一次打开,可能需要你选择下载python解释器,解释器版本根据你自己的项目解释器版本进行选择即可。

安装完python解释器后,填写自己的项目名称,启动端口,项目入口文件,启动命令等信息

1.项目端口

Flask应用默认启动在5000端口,如果你需要启动在其他端口的话,记得在app.py的最后几行的启动端口也一并修改,并放行防火墙

2.项目路径

和你刚刚上传的路径一致,只需要精确到项目文件夹即可

3.启动命令

该命令即是启动项目的入口文件,python3代表使用python3.x解释器启动文件,文件前的路径根据你的实际情况进行修改

python3 /www/wwwroot/test/server/app.py

4.安装依赖包

安装依赖包则是识别requirement.txt中的库并安装到这个项目的虚拟环境中(关于requirements.txt查看本文第4点)

若无异常,则可以在项目日志中查看到如下日志,则为启动成功!

注:如果顺顺利利让你成功,那么恭喜你啦!!如果没有,请看第八点~

8.可能存在的问题

这一部分都是笔者亲历的问题,网上有的缺乏教程,我简单总结一下问题和解决办法:

8.1.  bt面板提示的虚拟环境的命令进不去

解决方法:在python项目的页面中进入“命令行环境管理”,然后选择你所需要的环境即可

8.2. 提示flask_mysqldb库缺失

如图报错:

解决方法:

1.直接在项目日志上面的环境管理中直接搜索这个库进行安装(大概率不行)

2.确保你在开发的虚拟环境中,参考8.1把环境应用到命令行

然后在面板终端中依次输入

注:mysqlclient库的安装失败了,因为构建过程无法找到MySQL或MariaDB的开发库。这是因为mysqlclient依赖于这些库来编译和链接,而我们可以通过apt-get安装必要的开发库

sudo -i #切换为root用户
sudo apt-get update
sudo apt-get install python3-dev default-libmysqlclient-dev libssl-dev

然后再进入项目的终端安装flask_mysqldb库

pip install flask_mysqldb

8.3. 数据库查询错误(flask连不上mysql)

如图报错:

解决方法:

其实这个报错就是flask后端和mysql数据库没有连接成功导致的,flask默认连接/var/run/mysqld/mysqld.sock,然而我们的数据库的配置是/tmp/mysql.sock,参考第3点在修改入口文件的时候添加上相关配置

app.config['MYSQL_UNIX_SOCKET'] = '/tmp/mysql.sock'  # 使用正确的 Unix socket 路径

 

9. 结语

       本文是笔者成功用宝塔面板部署Flask+MySQL项目之后写的经验小结,如有不对的地方请多指正,因为在碰到这些问题时少有过往经验,没有相关帖子,故总结此篇教程用作分享,希望可以给您带来一些帮助或者遇上bug的启发。如果确实帮助到了您,希望您给我点点赞和星星,不胜感激!!!

### 使用宝塔面板部署Flask项目的教程 #### 上传项目文件 为了开始部署过程,需先将Flask项目文件上传至宝塔面板。这可以通过访问宝塔面板的文件管理功能实现,目标路径通常设定为`/www/wwwroot`下的指定目录,在这里可以创建一个新的文件夹来容纳即将上传的Flask应用,比如命名为`flask_kedney`作为示例中的项目名称[^1]。 #### 创建Python环境并配置虚拟环境 接着是在宝塔面板内新建一个Python项目,这一操作会引导用户设置相应的Python版本,并自动建立对应的虚拟环境用于隔离不同项目的依赖关系。这项工作可以在宝塔面板的“软件商店”找到“Python项目管理器”,通过它来进行新项目的初始化和配置[^2][^3]。 #### 安装依赖包 一旦完成了上述准备工作,则需要根据Flask应用程序的要求安装必要的Python库。这一步骤同样能在宝塔面板中轻松完成——只需导航到对应的应用程序页面,利用内置终端执行`pip install -r requirements.txt`命令即可快速安装所需的所有第三方模块[^4]。 #### 设置Nginx反向代理与Gunicorn启动参数 为了让Web流量能够正确转发给运行着的Flask服务,还需调整Nginx配置使之成为Flask应用之前的反向代理服务器;与此同时,也要确保选择了合适的WSGI容器(如Gunicorn),并通过适当的方式将其绑定到特定端口监听来自外部网络请求。这些都可以在宝塔面板里直观地进行配置,包括但不限于定义Gunicorn的工作进程数、大连接数等性能调优选项。 ```bash gunicorn --workers=3 app:app ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值