解决Django启动时浏览器显示“服务器拒绝访问”的多种排查方案

不晚
不晚
发布时间:2026-10-13 | 4人浏览过
原创

本文详细解析Django启动时浏览器提示“服务器拒绝访问”的常见原因及解决方案。主要涵盖修改settings.py中的ALLOWED_HOSTS配置、处理Django与SQLite3版本不兼容导致的降级或升级策略、修复base.py中uri参数错误,以及修正Linux系统中/etc/hosts文件导致的本地回环地址解析问题,帮助用户快速恢复服务访问。

该问题耗时较久才得以解决,整理如下旨在帮助遇到相同情况的开发者减少排查时间。

Django启动“服务器拒绝访问”解决方案

当启动Django项目后,浏览器提示“服务器拒绝访问”,可尝试以下几种修复方法。

修改ALLOWED_HOSTS配置

第一种情况:未开启允许访问权限。

请编辑项目目录(例如HelloWorld)下的settings.py文件,找到配置项

将ALLOWED_HOSTS=[]修改为ALLOWED_HOSTS=['*'],其中'*'代表允许任意地址访问。

解决Django与SQLite版本兼容问题

第二种情况:Django版本过高,而SQLite3版本过低。

执行命令python3 manage.py runserver 0.0.0.0:8000时,若出现以下报错:

django.core.exceptions.ImproperlyConfigured: SQLite 3.8.3 or later is required (found 3.7.17)

这通常是因为CentOS系统自带的SQLite3版本过低,而错误提示要求至少为3.8.3版本。解决思路主要有两种:降低Django版本或升级SQLite。

从操作简便性来看,降低Django版本通常更为简单。

首先卸载当前Django:pip3 uninstall django

然后安装指定低版本Django:pip3 install django==2.1.8

修复SQLite3 base.py uri参数错误

第三种情况:SQLite3版本为3.7时的特定报错。

执行python3 manage.py runserver 0.0.0.0:8000时,若出现以下错误:

django.db.utils.Notsupportederror: urls not supported

可通过pip3 show django查看Django的安装路径,进入该路径下的

python3.6/site-packages/django/db/backends/sqlite3/base.py

目录中找到base.py文件并进行编辑。

将配置中的'uri':True修改为'uri':False。

其他排查建议

第四种情况:其他潜在问题。

若上述方法无效,可尝试更换浏览器访问,或检查系统防火墙设置是否拦截了连接。

完成配置后,预期应能正常看到Django的欢迎界面。

补充:hosts文件导致的本地访问拒绝

补充知识:运行Django时出现127.0.0.1:8080服务器拒绝访问的排查。

在使用python manage.py runserver时若出现127.0.0.1:8080服务器拒绝访问,通常是因为修改了hosts文件导致本地解析异常。

此处省略截图展示。

打开终端执行以下命令:

$ sudo gedit /etc/hosts

打开该文件后,内容可能如下所示:

``` 127.0.0.1 localhost 127.0.0.1 Inspiron-5421

The following lines are desirable for IPv6 capable hosts

::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters```

只需删除包含127.0.0.1 Inspiron-5421的行即可解决问题。操作前建议备份hosts文件,以防误操作后无法恢复原始配置。

以上即为解决Django启动时浏览器显示“服务器拒绝访问”问题的完整方案,供参考使用。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表