直接 python manage.py runserver 8008 不适合生产,仅适合内网调试;runserver 是开发服务器,性能弱,不能对外公网暴露。
两种方案:任务计划程序(简单,适合调试) 、Windows 服务(后台无窗口,推荐)
方式一:任务计划程序开机自启(最简单,会弹出黑窗口)
1、写启动脚本 start_django.bat
新建文本文档,改后缀为 .bat,编辑内容:
@echo off
:: 切换到你的django项目根目录
cd /d E:\code\my_django_project
:: 激活虚拟环境(如果你用venv)
call venv\Scripts\activate.bat
:: 启动,端口8008
python manage.py runserver 0.0.0.0:8008
0.0.0.0:8008代表允许局域网其他设备访问;只本机访问写127.0.0.1:8008
保存,测试双击 bat,访问 http://127.0.0.1:8008 确认正常。
2、Windows 任务计划程序设置
- Win 搜索:任务计划程序
- 创建基本任务
- 名称:
DjangoAutoStart8008 - 触发器:计算机启动时
- 操作:启动程序
- 程序或脚本:选择刚才的
start_django.bat - 勾选:不管用户是否登录都要运行 ✅
- 取消勾选 "不存储密码",勾选最高权限运行
- 名称:
- 保存。
缺点:开机弹出 cmd 黑框,关掉窗口 Django 就停止;机器登录后才真正执行。
方式二:Windows 服务运行 Django(无黑窗口,真正后台驻留)
runserver 不适合做服务,改用 waitress 作为 WSGI 服务器。
步骤 1:安装 waitress
pip install waitress
步骤 2:项目根目录新建 service_run.py
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myproject.settings")
from waitress import serve
from myproject.wsgi import application
# 监听全部网卡,端口8008
serve(application, host="0.0.0.0", port=8008)
把
myproject替换为自己 Django 项目文件夹名。 测试运行:python service_run.py,访问 8008 确认正常。
步骤 3:用 nssm 把 python 脚本注册成 Windows 系统服务
-
下载 nssm(免安装工具),解压
-
cmd 管理员身份,进入 nssm 的
win64目录(32位系统进入win32)执行命令:nssm install DjangoService8008
弹出窗口:


- Path:选择你的 python 解释器路径,例:
E:\code\my_django_project\venv\Scripts\python.exe - Arguments:
service_run.py - Startup directory:填 Django 项目根目录
E:\code\my_django_project
设置服务:启动类型 =自动。
nssm start DjangoService8008
✅开机就后台自动跑,没有黑窗口,崩溃会自动重启。
NSSM常用命令:
nssm start DjangoService8008 #启动
nssm stop DjangoService8008 #停止
nssm restart DjangoService8008 #重启
nssm edit DjangoService8008 #编辑配置界面
nssm remove DjangoService8008 confirm #删除服务
⚠重要提醒
- 防火墙放行端口 8008,否则局域网访问不了。
manage.py runserver禁止公网直接使用,仅内网调试;正式环境务必用 waitress/gunicorn。- 如果使用虚拟环境,脚本 / 服务里必须使用虚拟环境下的 python.exe,不要用系统 python。
防火墙放行 8008 快速命令(管理员 cmd)
netsh advfirewall firewall add rule name="Django8008" dir=in action=allow protocol=TCP localport=8008 profile=any remoteip=any enable=yes