Windows10下Django服务运行正常但无法访问URL求助
我之前在Windows上开发Django项目时也碰到过完全一样的情况——服务明明显示Watching for file changes with StatReloader,但浏览器访问就是连不上,服务器也没任何请求日志。结合我踩过的坑,给你几个针对性的排查方向:
强制绑定全地址,避开127.0.0.1的环路问题
Windows下偶尔会出现127.0.0.1的本地回环异常,试试把服务绑定到所有可用地址:python manage.py runserver 0.0.0.0:8000之后访问
http://localhost:8000/users/或者http://你的本地IP:8000/users/,看看能不能正常连接。检查Windows防火墙是否拦截了请求
Windows Defender防火墙经常会默认拦截本地开发端口的请求,你可以:- 临时关闭防火墙(仅测试用,测试完记得重新开启),尝试访问服务;
- 或者手动添加入站规则:打开「控制面板→Windows Defender防火墙→高级设置→入站规则→新建规则」,选择「端口」,填入TCP端口8000,允许连接后保存规则。
禁用自动重载,排除StatReloader的异常
Windows的文件系统监控机制有时候会让StatReloader卡住,导致服务看似启动但没真正监听端口。试试禁用重载启动服务:python manage.py runserver --noreload启动后再访问测试,看看服务器会不会记录请求日志。
确认8000端口没被其他程序占用
打开命令提示符,执行以下命令查看8000端口的占用情况:netstat -ano | findstr :8000如果有结果,记下对应的PID,打开任务管理器找到该进程并结束,然后重新启动Django服务;或者直接换个端口启动:
python manage.py runserver 8001检查hosts文件的本地域名映射
打开C:\Windows\System32\drivers\etc\hosts文件(需要管理员权限编辑),确认有一行未被注释的映射:127.0.0.1 localhost如果这行被注释掉了(前面有#),去掉#号后保存,再重启服务测试。
内容的提问来源于stack exchange,提问作者codyc4321




