当前位置: 首页 > ai >正文

17_Flask部署到网络服务器

一、生产部署

应用开发完成以后,需要把它提供给用户使用。重点介绍:在 Docker 中部署 Flask 应用。要使用 Docker 和 docker-compose 来部署一个简单的 Flask 应用,您需要创建两个文件:一个是 Dockerfile,用于定义如何构建应用的 Docker 镜像;另一个是 docker-compose.yml 文件,用于定义服务以及它们之间的连接方式。

二、初始代码

Ctrl + C 拷贝 01-hello-world,粘贴到 flask-study 目录,然后命名为 14-docker-deploy

0

三、安装 Gunicorn

安装依赖

pip install gunicorn

0

四、列出依赖

自动生成 requirements.txt 文件,推荐使用工具 pipreqs。这个工具会扫描你的项目代码中实际导入的模块,并生成一个精简、准确的依赖列表文件。

4.1 安装 pipreqs

pip install pipreqs

0

4.2 执行 pipreqs 命令

# 进入项目根目录cd 14-docker-deploy# 运行 pipreqs 命令# . 表示当前目录。# --encoding=utf8:防止编码错误(尤其是中文路径或文件名)。# --force:如果已存在 requirements.txt,强制覆盖生成。pipreqs . --encoding=utf8 --force

0

使用以下命令将当前环境中安装的 gunicorn 版本信息写入 requirements.txt 文件:

pip freeze | findstr /i "gunicorn" >> requirements.txt

0

五、创建 Dockerfile

在 app.py 同一目录下创建一个名为 Dockerfile 的文件,内容如下:

# 使用官方的 Python 基础镜像FROM docker.1ms.run/python:3.10-slim# 设置工作目录WORKDIR /app# 复制 requirements.txt 文件并安装依赖COPY requirements.txt .RUN pip install --no-cache-dir -r requirements.txt# 复制当前目录下的所有文件到工作目录COPY . .# 暴露容器的端口EXPOSE 5000# 运行 Flask 应用CMD ["gunicorn", "-b", "0.0.0.0:5000", "app:app"]

0

六、创建 docker-compose.yml

在 app.py 同一目录下创建一个名为 docker-compose.yml 的文件,内容如下:

version: '3.10'services:  flask_app:    build: .    container_name: flask_app    restart: always    ports:      - "5000:5000"    volumes:      - .:/app    environment:      FLASK_ENV: production

0

七、安装Docker服务

Windows 11 家庭中文版安装Docker Desktop图文教程

八、构建和运行

然后运行以下命令以构建并启动服务:

docker-compose up --build

0

九、查看docker上构建的服务

0

点击访问服务:

0

访问效果:

0

http://www.xdnf.cn/news/14178.html

相关文章:

  • 【软测】接口测试 - 用postman测试软件登录模块
  • 微机原理与接口技术,期末冲刺复习资料(汇总版)
  • Linux进程间通信(IPC)详解:从入门到理解
  • H5 技术与定制开发工具融合下的数字化营销新探索
  • 高效录屏工具推荐:从系统自带到专业进阶
  • 函数调用过程中的栈帧变化
  • 普通Dom转换为可拖拽、最大化、最小化窗口js插件
  • 【在线五子棋对战】六、项目结构设计 工具模块实现
  • 【unitrix】 1.6 数值类型基本结构体(types.rs)
  • 商用油烟净化器日常维护的标准化流程
  • Arduino入门教程:4-1、代码基础-进阶
  • 静态变量详解(static variable)
  • 微博项目(总体搭建)
  • Javascript什么是原型和原型链,八股文
  • java面试总结-20250609
  • 数据结构 学习 图 2025年6月14日 12点57分
  • spring如何处理bean的循环依赖
  • NuttX 调度器源码学习
  • 吃透 Golang 基础:方法
  • 湖南源点(市场研究)咨询 DNF下沉市场用户研究项目之调研后感
  • 03、继承与多态
  • 使用C/C++的OpenCV 构建人脸识别并自动抓拍系统
  • 使用DuckDB查询DeepSeek历史对话
  • AI首次自主发现人工生命
  • C++编程语言
  • Spring Cloud 原生中间件
  • Linux免驱使用PCAN,使用方法以Ubuntu为例
  • Java基础复习之static
  • Dify动手实践教程1
  • Day 49 训练