17_Flask部署到网络服务器

一、生产部署

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

视频教程:

17_Flask部署到网络服务器

二、初始代码

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

三、安装 Gunicorn

安装依赖

复制代码
pip install gunicorn

四、列出依赖

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

4.1 安装 pipreqs

复制代码
pip install pipreqs

4.2 执行 pipreqs 命令

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

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

复制代码
pip freeze | findstr /i "gunicorn" >> requirements.txt

五、创建 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"]

六、创建 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

七、安装Docker服务

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

八、构建和运行

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

复制代码
docker-compose up --build

九、查看docker上构建的服务

点击访问服务:

访问效果:

相关推荐
我的xiaodoujiao1 分钟前
API 接口自动化测试详细图文教程学习系列12--Requests模块4--测试实践操作
python·学习·测试工具·pytest
m0_514520573 分钟前
HTML5中Vuex持久化插件中WebStorage的底层配置
jvm·数据库·python
a9511416427 分钟前
Redis如何利用Redisson处理并发击穿
jvm·数据库·python
郝学胜-神的一滴12 分钟前
[ 力扣 1124 ] 解锁最长良好时段问题:前缀和+哈希表的优雅解法
java·开发语言·数据结构·python·算法·leetcode·散列表
戴西软件13 分钟前
戴西CAxWorks.VPG车辆工程仿真软件|假人+座椅双调整 汽车仿真效率直接拉满
java·开发语言·人工智能·python·算法·ui·汽车
2401_8877245013 分钟前
如何防止SQL注入利用存储过程_确保存储过程不拼字符串.txt
jvm·数据库·python
财经资讯数据_灵砚智能14 分钟前
基于全球经济类多源新闻的NLP情感分析与数据可视化(夜间-次晨)2026年4月16日
大数据·人工智能·python·信息可视化·自然语言处理
林会14 分钟前
DeerFlow本地部署!调用本地大模型
python·开源
m0_7164300718 分钟前
Laravel 迁移中外键约束错误的成因与修复方案.txt
jvm·数据库·python
2201_7568473319 分钟前
CSS如何利用CSS变量管理间距_统一定义盒模型数值
jvm·数据库·python