Python Web 应用(以 Django 为例)服务部署
在 Windows Server 2012 上部署 Python Web 应用(以 Django 为例),可以选择多种方式,下面我将给出一套稳定实用、适合生产环境的部署方案详解:
✅ 总体部署流程(推荐)
- 安装 Python 和 pip
- 安装虚拟环境并创建项目环境
- 安装 Django 并配置项目
- 安装 IIS(Windows Server 自带)并配置 FastCGI
- 安装
wfastcgi(桥接 Django 和 IIS) - 在 IIS 中配置 Django 项目运行
- 调试运行 + 配置服务启动项(可选:使用 Nginx 或 Apache)
📌 步骤一:安装 Python 和 pip
1. 下载并安装 Python 3.x(推荐 3.8+)
-
安装选项勾选:
- ✅ Add Python to PATH
- ✅ pip(包管理器)
2. 检查安装是否成功
python --version
pip --version
📌 步骤二:创建虚拟环境并安装 Django
# 安装虚拟环境工具(可选)
pip install virtualenv
# 创建虚拟环境
cd C:\your_project\
virtualenv venv
# 启动虚拟环境
venv\Scripts\activate
# 安装 Django
pip install django
# 创建 Django 项目
django-admin startproject mysite
📌 步骤三:测试项目是否正常
cd mysite
python manage.py runserver 0.0.0.0:8000
访问:http://127.0.0.1:8000 如果页面显示正常,说明 Django 安装无误。
📌 步骤四:配置 IIS + FastCGI + wfastcgi
1. 安装 IIS + CGI 功能(在服务器管理器中)
进入:服务器管理器 > 添加角色与功能 > Web 服务器(IIS)
勾选:
- Web 服务器(IIS)
- Web 服务器 → 应用程序开发 → CGI
- 管理工具 → IIS 管理控制台
✔️ 安装后你可以通过 “Internet 信息服务 (IIS) 管理器” 打开配置界面
2. 安装 wfastcgi 模块
这是连接 IIS 和 Python(WSGI)的桥梁。
pip install wfastcgi
python -m wfastcgi-enable
它会自动注册 Python 到 FastCGI(Windows 注册表中),建立桥接。
📌 步骤五:在 IIS 配置 Django 站点
假设你项目路径为:
C:\inetpub\wwwroot\mysite\
包含:
- manage.py
- mysite/
- static/
- templates/
1. 配置 web.config 文件
在 mysite/ 目录下创建 web.config 文件,内容如下:
<configuration>
<system.webServer>
<handlers>
<add name="Python FastCGI"
path="*"
verb="*"
modules="FastCgiModule"
scriptProcessor="C:\Python39\python.exe|C:\Python39\Lib\site-packages\wfastcgi.py"
resourceType="Unspecified"
requireAccess="Script" />
</handlers>
<defaultDocument>
<files>
<add value="index.py" />
</files>
</defaultDocument>
</system.webServer>
</configuration>
确保替换其中的 python.exe 路径为你本机 Python 安装目录。
2. 创建入口文件 index.py
内容如下:
import os
import sys
# 添加 Django 项目路径
sys.path.append(r'C:\inetpub\wwwroot\mysite')
# 设置环境变量
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'
# 获取 WSGI 应用
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
3. 配置站点绑定
在 IIS 管理器中:
- 添加站点(网站名称:
mysite) - 物理路径指向
C:\inetpub\wwwroot\mysite - 绑定端口如 8000 或 80
4. 设置环境变量(可选但推荐)
在系统环境变量中添加:
WSGI_HANDLER = index.application
确保 IIS 能正确找到入口函数。
📌 步骤六:收集静态文件 & 数据库迁移
python manage.py collectstatic
python manage.py migrate
静态文件默认输出到 /static 目录,确保 IIS 能访问。
📌 可选:使用 Nginx + Gunicorn(更推荐于 Linux)
Windows 上虽然能跑 IIS + FastCGI,但性能和社区支持不如 Linux 上使用:
nginx + gunicorn + django- 或者直接用
docker + uwsgi + nginx
✅ 总结流程图
用户请求
│
▼
IIS + FastCGI (配置 web.config)
│
▼
python + wfastcgi.py
│
▼
Django 项目 (index.py / wsgi.py)
✅ 常见问题 FAQ
| 问题 | 说明 |
|---|---|
| 500 错误 | 检查 web.config、Python 路径是否正确 |
| 静态文件 404 | 使用 collectstatic 并确保 IIS 能访问 |
| 页面空白无输出 | 检查是否启用 CGI / FastCGI,IIS 权限 |
| 项目路径错误 | sys.path.append(...) 路径确保设置正确 |
以下是一个适用于 Windows Server 2012 的完整 Django 项目部署脚本模板,包括目录结构、配置文件、关键脚本等,适用于使用 IIS + FastCGI + Python + Django 的部署方式。
🗂️ 项目结构建议(部署后)
C:\inetpub\wwwroot\mysite\
├── manage.py
├── mysite\ # Django 项目包
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ ├── wsgi.py
├── static\ # 静态文件目录(collectstatic)
├── templates\ # 模板目录
├── web.config # IIS配置文件
├── index.py # FastCGI入口文件(WSGI桥接)
└── requirements.txt # Python依赖包列表
📄 index.py —— WSGI 入口文件
# index.py
import os
import sys
# 添加 Django 项目的路径
sys.path.append(r'C:\inetpub\wwwroot\mysite')
# 设置 Django 项目的设置模块
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'
# 获取 WSGI 应用
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
📄 web.config —— IIS FastCGI 配置文件
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="Python FastCGI"
path="*"
verb="*"
modules="FastCgiModule"
scriptProcessor="C:\Python39\python.exe|C:\Python39\Lib\site-packages\wfastcgi.py"
resourceType="Unspecified"
requireAccess="Script" />
</handlers>
<defaultDocument>
<files>
<add value="index.py" />
</files>
</defaultDocument>
</system.webServer>
</configuration>
🔧 替换:
C:\Python39\python.exe为你的实际 Python 路径。
📄 requirements.txt 示例
Django==3.2
wfastcgi==3.0.0
你可以使用如下命令自动生成:
pip freeze > requirements.txt
📄 manage.py 示例(原始 Django 生成)
此文件自动生成,不必更改。
🔧 Windows Server 配置操作简要脚本(手动执行)
1. 安装 Python、pip、添加环境变量
# 手动或使用包管理器安装 Python
2. 安装依赖
cd C:\inetpub\wwwroot\mysite
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt
3. 注册 FastCGI(只需执行一次)
python -m wfastcgi.enable
🛠️ 管理命令常用
# 启动开发服务器测试
python manage.py runserver
# 数据库迁移
python manage.py migrate
# 创建超级用户
python manage.py createsuperuser
# 收集静态资源
python manage.py collectstatic
✅ 补充:静态文件支持
确保在 settings.py 中配置如下内容:
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
收集命令:
python manage.py collectstatic
✅ 完成后你应该能:
- 通过浏览器访问 IIS 分配端口访问 Django 项目
- Django 项目由 IIS 通过 FastCGI 调用 Python → Django WSGI 启动服务
- 能正常显示页面、路由、静态文件和后台

浙公网安备 33010602011771号