欢迎您的来访!有源码,好建站(www.codehy.com)源码海洋源码网为您提供快速建站平台.
当前位置: 首页 > 行业资讯 > python资料 >

Flask 项目 Windows 服务器部署全流程

时间:2025-12-25 09:13来源:未知 作者:admin 点击:
Flask 项目 Windows 服务器部署全流程(含本地依赖生成、打包与后台运行指南) 一、写在前面 在 Windows 服务器上部署 Flask 项目时,常常会遇到环境兼容、依赖缺失、外网访问失败等问题,尤其是生产环境中需要无窗口后台运行的需求。本文从本地准备到服务器

 Flask 项目 Windows 服务器部署全流程(含本地依赖生成、打包与后台运行指南)

一、写在前面
在 Windows 服务器上部署 Flask 项目时,常常会遇到环境兼容、依赖缺失、外网访问失败等问题,尤其是生产环境中需要“无窗口后台运行”的需求。本文从本地准备到服务器部署全流程拆解,涵盖依赖生成、项目打包、环境配置、服务启动、外网访问及后台静默运行等关键步骤,帮你避坑稳走每一步!
 
二、本地准备:依赖清单生成与项目打包
部署前需在本地完成 依赖清单生成 和 项目打包,确保服务器环境与本地一致,避免文件遗漏。
 
1. 生成 requirements.txt(依赖清单)
requirements.txt 用于记录项目所有依赖库及版本,是服务器安装依赖的“说明书”。
 
操作步骤:
激活本地虚拟环境(推荐使用虚拟环境隔离依赖):
 
Windows 命令提示符:
# 进入本地项目根目录
cd D:\本地项目路径\flask_project  
# 激活虚拟环境(若用 venv 模块创建)
venv\Scripts\activate  
AI写代码
bash
1
2
3
4
Mac/Linux 终端:
cd /本地项目路径/flask_project  
source venv/bin/activate  
AI写代码
bash
1
2
生成依赖清单:
在虚拟环境激活状态下,执行以下命令,自动在项目根目录生成 requirements.txt:
 
pip freeze > requirements.txt  
AI写代码
bash
1
检查文件内容:
打开 requirements.txt,确认包含项目所需依赖(如 Flask、数据库驱动等),示例:
 
Flask==2.3.3
pymysql==1.1.0
dbutils==3.0.2
waitress==2.1.2  # 生产环境服务器依赖
AI写代码
txt
1
2
3
4
2. 本地项目打包(压缩上传准备)
打包目的是将项目文件统一压缩,方便通过 FTP 工具上传到服务器,避免文件遗漏或传输错误。
 
操作步骤:
确认项目目录结构:
确保根目录包含所有必要文件,典型结构如下(根据实际项目调整):
 
flask_project/  # 项目根目录
├── app.py  # Flask 入口文件(核心)
├── requirements.txt  # 依赖清单(刚生成)
├── templates/  # HTML 模板目录
├── static/  # 静态资源(CSS/JS/图片)
├── mysqlDao.py  # 数据库操作模块(示例)
└── config.py  # 配置文件(示例)
AI写代码
1
2
3
4
5
6
7
排除无关文件:
打包前删除冗余文件,例如虚拟环境目录(venv/)、本地日志(*.log)、IDE 配置文件等。
 
压缩为 ZIP 包:
 
Windows:右键项目根目录 → 发送到 → 压缩(zipped)文件夹,生成 flask_project.zip。
三、服务器部署全流程
1. 环境准备(Windows 服务器)
安装 Python:下载 Python 3.6+ 并勾选“Add Python to PATH”。
安装必备工具:
python -m pip install --upgrade pip  
pip install virtualenv  # 可选,用于虚拟环境管理
AI写代码
bash
1
2
2. 项目上传与解压
使用 WinSCP/FileZilla 将 flask_project.zip 上传到服务器目录(如 D:\flask_project )。
右键解压到目标目录,确保结构完整。
3. 虚拟环境与依赖安装
# 进入项目目录
cd D:\flask_project  
 
# 创建并激活虚拟环境
python -m venv venv  
venv\Scripts\activate  
 
# 安装依赖
pip install -r requirements.txt  
AI写代码
bash
1
2
3
4
5
6
7
8
9
4. Flask 应用配置
设置环境变量:
set FLASK_APP=app.py  # 指定入口文件
AI写代码
bash
1
数据库配置检查:确保 mysqlDao.py 中数据库 IP、端口、账号等与服务器一致。
5. 启动 Flask 服务(Windows 兼容方案)
方式 1:开发环境(Flask 内置服务器)
flask run --host=0.0.0.0 --port=5000  # 绑定所有网卡,允许外网访问
 
方式 2:生产环境(Waitress 服务器)
pip install waitress  # 安装生产级服务器
waitress-serve --host=0.0.0.0 --port=5000 app:app  # 替代 gunicorn
 
6. 外网访问配置(关键步骤)
(1)防火墙开放端口
路径:控制面板 → 系统和安全 → Windows 防火墙 → 高级设置。
新建入站规则:允许 TCP 协议的 5000 端口(与服务端口一致)。
(2)端口映射(内网穿透)
登录路由器管理页,添加端口映射规则:
内网 IP:服务器局域网 IP(通过 ipconfig 获取)。
内外网端口:均设置为 5000。
四、实现无窗口后台运行(静默启动)
在 Windows 服务器上,需让 Flask 应用脱离命令行窗口后台运行,推荐通过 批处理 + VBS 脚本 实现:
 
1. 创建批处理脚本(start_flask.bat)
在项目根目录新建 start_flask.bat,内容如下:
 
@echo off
REM 强制切换到脚本所在目录(避免路径问题)
cd /d "%~dp0"  
 
REM 激活虚拟环境
call "venv\Scripts\activate.bat"  
 
REM 启动服务并输出日志(使用 Waitress 或 Flask 内置服务器)
waitress-serve --host=0.0.0.0 --port=5000 app:app > flask_log.txt 2>&1  
REM 若用 Flask 内置服务器,替换为:
REM flask run --host=0.0.0.0 --port=5000 > flask_log.txt 2>&1  
 
2. 创建 VBS 脚本(隐藏窗口)
新建 start_flask.vbs,用于静默执行批处理脚本,内容如下:
 
方法 1:绝对路径(推荐,稳定不易错)
Set WshShell = CreateObject("WScript.Shell")
REM 直接指定批处理文件的绝对路径(加引号避免中文/空格问题)
WshShell.Run Chr(34) & "D:\flask_project\start_flask.bat" & Chr(34), 0
Set WshShell = Nothing
 
方法 2:相对路径(适合脚本与批处理同目录)
若 start_flask.vbs 与 start_flask.bat 在同一目录,可自动获取路径:
 
Set WshShell = CreateObject("WScript.Shell")
' 获取 VBS 脚本所在目录
scriptDir = CreateObject("Scripting.FileSystemObject").GetParentFolderName(WScript.ScriptFullName)
' 拼接批处理路径(同一目录)
batPath = scriptDir & "\start_flask.bat"
' 隐藏窗口运行
WshShell.Run Chr(34) & batPath & Chr(34), 0
Set WshShell = Nothing
AI写代码
vbscript
1
2
3
4
5
6
7
8
3. 启动与停止方式
启动:双击 start_flask.vbs,无窗口弹出即表示成功运行。
停止:打开任务管理器,找到 python.exe 或 pythonw.exe 进程(对应 Flask 服务),右键结束任务。
4. 注意事项
路径问题:确保 bat 和 vbs 脚本中的路径无中文/空格,或用引号包裹路径。
日志查看:通过 flask_log.txt 查看服务输出,排查启动失败原因。
稳定性:生产环境建议用 Waitress 替代 Flask 内置服务器,避免意外退出。
五、避坑指南(Windows 特有问题)
gunicorn 无法运行:用 Waitress 替代,命令:waitress-serve --host=0.0.0.0 --port=5000 app:app。
外网访问失败:检查防火墙规则是否开放端口、路由器映射是否正确。
后台启动报错:确认 bat 脚本中虚拟环境路径正确,手动运行 start_flask.bat 排查依赖问题。
六、部署流程
 
七、总结
本文涵盖了 Flask 项目在 Windows 服务器部署的全流程,从本地依赖生成、项目打包到服务器环境配置、外网访问,再到无窗口后台运行,核心是解决 Windows 兼容性问题(如用 Waitress 替代 gunicorn)和路径配置问题。按步骤操作,即可实现稳定的 Flask 项目部署。遇到问题欢迎留言交流!
 
(责任编辑:admin)本文地址:http://www.codehy.com/info/python/2025/1225/27476.html

推荐资讯