使用宝塔面板搭建Flask项目保姆级喂饭教程

06-02 1282阅读

目录

零.前言

一.准备工作

1.1创建requirements.txt文件

1.2将项目打包为压缩文件

1.3租一台服务器

1.4部署宝塔面板

二.宝塔面板(服务器)上的操作

2.1将本地Flask项目上传到服务器

2.2添加Python项目

2.3配置Python项目

2.4配置Nginx

2.5宝塔面板放行端口

2.6在服务器管理后台开放端口

2.7启动服务器

三.结语

零.前言

前段时间,利用Flask做了一个个人网站,后面想要部署,觉得使用宝塔面板部署相对简单,于是便去网上搜索各种教程,发现网上对于Flask部署的教程少之又少加之宝塔面板的更新,早已不适用。

作者苦苦摸索20余小时,终于摸索出一套比较完整且适用的方法!

PS:本教程主打的一对一喂饭,因此对于小白相对友好,如嫌啰嗦建议粗略阅读。

本次使用的服务器系统以及项目版本为:

Python版本:3.11.4

宝塔面板版本:免费版8.0.5

Linux系统:Ubuntu22

服务器:华为云的耀L服务器

一.准备工作

在准备工作中,所有的操作均在“自己电脑”上完成!!!

在准备工作中,所有的操作均在“自己电脑”上完成!!!

在准备工作中,所有的操作均在“自己电脑”上完成!!!

重要的事情说三遍!

1.1创建requirements.txt文件

我们需要创建“requirements.txt”文件用来获取Flask项目开发所用到的Python库(包)。

具体步骤如下:

  1. 进入项目所在目录,随后在目录中输入cmd再按回车,便可进入该目录的命令控制行,或者在Pycharm中的终端都可以
  2. 输入命令:
    pip freeze > requirements.txt

    这样一个requirements.txt文件即可生成在当前目录下啦~

 以我项目为例,requirements.txt文件内部长这个样子:

使用宝塔面板搭建Flask项目保姆级喂饭教程

1.2将项目打包为压缩文件

将项目内的所有文件打包成一个压缩文件,建议直接对项目根文件夹打包,例如我的项目文件夹名字为:“pythonproject”,那么我可以直接对这个文件夹压缩

使用宝塔面板搭建Flask项目保姆级喂饭教程

1.3租一台服务器

租一台服务器,系统为需要为Linux,Centos建议版本7.X往上,Ubuntu系统都可。

国内服务器厂家很多,有:“华为云”、“京东云”、“腾讯云”、“阿里云”等等,在这里作者使用的是华为云的,且安装系统直接有自带宝塔面板的Ubuntu系统,省去不少事,至于其他厂家都大差不大。

1.4部署宝塔面板

再组好服务器之后,我们首先要找到:“服务器外网IP”、“服务器内网IP”这两个十分重要。

随后我们需要在服务器上部署宝塔面板,版本8.X往上即可,如果不知道部署什么版本的宝塔,那直接就最新版!

至于怎么部署宝塔面板,本文章就不赘述了,CSDN上已有不少博主发布过非常详细的教程。

在登录宝塔面板后,是这个样子:

使用宝塔面板搭建Flask项目保姆级喂饭教程

二.宝塔面板(服务器)上的操作

2.1将本地Flask项目上传到服务器

  • 在宝塔面板右侧导航栏找到”文件“,点击进入“文件”页面。
  • 在“文件”页面中依次点击:“www”->“wwwroot”,进入“/www/wwwroot”目录下。
  • 将本地压缩好的Flask项目文件上传到该目录下(可以左键拖动到宝塔页面上传,也可以点击“上传”按钮上传)
  • 右键上传好的项目文件,点击解压,将项目解压到该目录下。

     最后,以作者的项目为例,解压好的界面长这个样子:

    使用宝塔面板搭建Flask项目保姆级喂饭教程

    2.2添加Python项目

    • 在宝塔面板右侧导航栏找到“网站”,点击进入“网站”页面。
    • 在“网站”页面中,选择“Python项目”,点击“添加Python项目”。

       使用宝塔面板搭建Flask项目保姆级喂饭教程

      点击之后,是这个样子的:

      使用宝塔面板搭建Flask项目保姆级喂饭教程

      而填好的是这个样子,读者可以对照填写,后面还会详细解释:

      使用宝塔面板搭建Flask项目保姆级喂饭教程

      下面详细解释各个参数:

      • 项目路径:填写Flask项目的根路径
      • 项目名称:自己随便取,不建议使用中文,这个名字只是用来展示在宝塔面板中
      • 运行文件:填写Flask项目中,app.run()启动代码所在的py文件路径
      • 项目端口:随便填写,范围在(0-65535)之间,注意填写没有被其它应用程序占用的端口,同时避开常见端口,例如“3306”就是数据库服务器的默认端口,如果实在想不到填什么,可以跟作者一样填写端口号为“8000”
      • Python版本:Python版本只能选择,不能任意指定输入,如果没有与开发环境相对应的Python版本,直接选择最新版本或者比开发环境大一点的版本。
      • 框架:选择“flask”
      • 运行方式:选择“uwsgi”
      • 网络协议:选择“wsgi”
      • 进程数、线程数:默认即可,默认为4和2
      • 启动用户:选择“www”
      • 通信方式:选择“http”
      • 安装依赖包:在第一步准备工作中,我们已经制作了requirements.txt文件,所以当你选择项目根目录后,宝塔会自动检测并识别,不需要人为填写

        2.3配置Python项目

        • 点击刚刚添加的Python项目的“设置”,进入“设置”界面。
        • 在“设置”界面中,点击左侧的配置文件。

           我们需要修改“sever_name”、“root”两项:

          使用宝塔面板搭建Flask项目保姆级喂饭教程

          • sever_name:填写服务器的公网ip
          • root:填写项目的根路径

             我们再点击右侧的“运行配置”:

            随后,我们需要在文件中添加“三行配置参数“:

            buffer-size=65536

            callable=app

            virtualenv=/www/server/pyporject_evn/pythonProject_venv

            使用宝塔面板搭建Flask项目保姆级喂饭教程

            参数说明:

            • buffer-size:网页请求最大MB大小,建议填大一点
            • callable:填写app.run()启动代码所在的py文件名称
            • virtualenv:填写虚拟环境路径,在新版本的宝塔面板中,面板会自动为我们创建一个虚拟环境,目录在:“/www/server/pyporject_env/项目名_venv”

               随后,我们再点击右侧的“域名管理”,添加一个域名,格式为:“服务器公网IP:刚才设置的端口号”

              最后,我们点击右侧的“外网映射”,将外网映射打开即可。

              使用宝塔面板搭建Flask项目保姆级喂饭教程

              2.4配置Nginx

              • 在宝塔面板右侧导航栏找到“软件商店”,点击进入“软件商店”。
              • 在软件商店中搜索“Nginx”,下载并安装,安装全部默认设置即可。

                 安装完成后,是这个样子:

                使用宝塔面板搭建Flask项目保姆级喂饭教程

                我们点击“Nginx”的“设置”,进入“Nginx的设置界面”。

                在“Nginx设置界面”的右侧,找到“配置修改”,进入“配置修改”界面,并往下翻动,找到“server”项

                使用宝塔面板搭建Flask项目保姆级喂饭教程

                • 将原先的“index index.html index.htm index.php;”这行注释掉,如果没有该行则跳过
                • 将原先的“root /www/server/phpmyadmin;”这行注释掉,如果没有该行则跳过
                • 添加新的“root 你的项目根路径”

                  继续向下翻动,添加两个“location”项,添加在“server”项中即可

                  添加内容为:

                          location /

                          {

                              include uwsgi_params;

                              uwsgi_pass 服务器内网IP:你的端口号;

                              uwsgi_param UWSGI_CHDIR 项目根路径;

                          }

                          

                          location /static/

                          {

                            alias 项目根路径/static;

                          }

                  其中,第二个“location /static/”是为了保证Nginx反代可以正确识别静态资源文件(在Flask项目中,静态资源文件如图片等,都存放在这个目录下)

                  添加好后,以作者项目为例子,如下图所示:

                  使用宝塔面板搭建Flask项目保姆级喂饭教程

                  最后,千万别忘记点击“保存”哦!

                  2.5宝塔面板放行端口

                  终于来到最后一步啦!

                  在这一步,我们需要在宝塔面板中放行我们之前自己设置的端口,例如作者设置的端口就是“8000”

                  • 在宝塔面板右侧导航栏找到“安全”,点击进入“安全”界面。
                  • 在“安全”界面中,找到“添加端口规则”。

                     使用宝塔面板搭建Flask项目保姆级喂饭教程

                    在“添加端口规则”弹窗处,添加端口号,其它参数都不用管默认即可!

                    在这里,作者项目使用的端口是8000,因此在这里就输入8000

                    使用宝塔面板搭建Flask项目保姆级喂饭教程

                    2.6在服务器管理后台开放端口

                    仅仅在宝塔面板放行端口是不够的,因为现在的云服务器厂商都提供一种名为“安全组”的策略,我们还需要在服务器管理后台的“安全组”处开放我们所使用的端口。

                    不同的服务器厂商开放方法不同,不过大差不差,可以百度搜索,或者查看厂商文档即可,很简单!

                    在这里,作者还是给出“华为云”开放安全组端口的步骤:

                    1.在华为云控制台,点击“安全组”

                    使用宝塔面板搭建Flask项目保姆级喂饭教程

                    2.找到服务器所使用的安全组,一般来说服务器使用的安全组默认是第一个,即名字为一堆乱码的,不是“default”!

                    使用宝塔面板搭建Flask项目保姆级喂饭教程

                    3.点击“入方向规则”,找到“添加规则”按钮,点击进入“添加规则”界面

                    使用宝塔面板搭建Flask项目保姆级喂饭教程

                    4.优先级输入“100”,再输入我们的端口号,其它参数默认即可

                    使用宝塔面板搭建Flask项目保姆级喂饭教程

                    到这里,所有的步骤已经完成啦!!

                    2.7启动服务器

                    最后,不要忘记在我们宝塔面板的“网站”处,找到“Python项目”点击启动服务器哦!

                    给大家上一张,作者个人网站的截图!

                    祝大家都能部署成功!

                    使用宝塔面板搭建Flask项目保姆级喂饭教程

                    三.结语

                    本篇文章无恰饭!!

                    无广告!!

                    使用华为云是真的方便,所以才会着重介绍一下!!

                    我是真的一粒米也没有收!!!

                    如果有华为云的工作人员可以看到的话,要是能帮我申请一台免费的云服务器几个月就好啦哈哈哈哈!!(QAQ)

                    最后,祝大家生活愉快!!

                    少一点BUG!!!

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

目录[+]

取消
微信二维码
微信二维码
支付宝二维码