Django runserver端口处于LISTEN状态但浏览器无响应求助
排查Django开发服务器启动正常但浏览器无响应的问题
作为Django新手遇到这种突然罢工的情况确实头大,我来给你补充几个没提到的排查方向,说不定能找到问题所在:
仔细查看终端日志输出
启动python manage.py runserver后,别只盯着启动成功的提示。当你在浏览器访问http://127.0.0.1:8000时,立刻看终端有没有新的日志:- 如果完全没有任何请求记录,说明请求根本没到达Django,大概率是本地网络或系统层面的拦截;
- 如果有报错日志(比如数据库连接失败、视图函数报错),那问题就出在项目代码或配置上,跟着报错信息排查就行。
用curl在本地测试请求
打开新终端运行curl -v http://127.0.0.1:8000,查看详细的请求过程:- 如果curl能正常拿到响应,那问题出在浏览器上——试试清空浏览器缓存、用无痕模式访问,或者确认浏览器的代理设置真的彻底关闭了;
- 如果curl也没响应,继续往下排查。
检查项目settings.py关键配置
- 看看
ALLOWED_HOSTS有没有被误改:虽然127.0.0.1属于默认允许的范围,但如果不小心改成了特定域名,可能会导致访问被拒绝。可以临时把它改成ALLOWED_HOSTS = ['*']再试; - 有没有新增或修改中间件?某些自定义中间件如果逻辑有问题,可能会卡住请求无法返回响应。试试注释掉最近添加的中间件,重启服务再测试。
- 看看
确认Python环境和依赖
- 时隔几天启动项目,会不会是激活了错误的虚拟环境?运行
python --version和pip show django,确认当前环境的Python和Django版本和之前正常运行时一致; - 如果之前有
requirements.txt文件,建议重新安装依赖:pip install -r requirements.txt,避免依赖包版本更新导致的兼容性问题。
- 时隔几天启动项目,会不会是激活了错误的虚拟环境?运行
排查防火墙或安全软件
本地防火墙、杀毒软件可能会悄悄拦截8000端口的请求。可以临时关闭防火墙试试,或者手动把8000端口加入允许访问的列表。创建全新项目做对比测试
运行django-admin startproject test_project,进入新项目后启动服务器,再访问测试地址。如果新项目能正常打开,说明你原来的项目存在问题(比如某个文件损坏、数据库连接异常);如果新项目也不行,那就要排查系统层面的网络或Python环境问题了。
内容的提问来源于stack exchange,提问作者Ali Rachidi
相关产品推荐
相关产品推荐

