You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL集成Django后开发服务器无法访问(连接被拒绝)

排查步骤与解决方案

1. 确认Django开发服务器是否成功启动

启动服务器后,查看终端输出:

  • 正常启动会显示类似 Starting development server at http://127.0.0.1:8000/ 的信息。
  • 如果终端有报错(比如数据库连接失败、权限错误),优先解决这些错误——服务器可能根本没正常启动,自然无法访问。

2. 检查PostgreSQL服务状态

PostgreSQL未运行会导致Django启动失败:

  • 查看状态:sudo systemctl status postgresql
  • 若未运行,启动服务:sudo systemctl start postgresql
  • 设置开机自启:sudo systemctl enable postgresql

3. 测试PostgreSQL本地连接

直接验证数据库本身是否可访问,排除Django层面的问题:

  • 执行命令:psql -U 你的数据库用户名 -d 你的数据库名称
  • 若连接失败,说明数据库配置存在问题(比如用户不存在、密码错误、数据库未创建),先修复PostgreSQL的本地连接问题。

4. 检查8000端口是否被占用

其他程序占用8000端口会导致Django无法绑定:

  • 查看端口占用:sudo lsof -i :8000 或 sudo netstat -tulpn | grep 8000
  • 若有占用进程,要么终止该进程,要么换端口启动Django:python manage.py runserver 8001

5. 验证防火墙规则生效

确认8000和5432端口的防火墙规则已正确添加:

  • 查看当前规则:sudo ufw status verbose
  • 确保输出中包含:
    8000/tcp ALLOW IN Anywhere
    5432/tcp ALLOW IN Anywhere
    
  • 若规则缺失,重新添加:
    sudo ufw allow 8000/tcp
    sudo ufw allow 5432/tcp
    sudo ufw reload
    

6. 检查Django的ALLOWED_HOSTS配置

虽然DEBUG模式下127.0.0.1默认允许,但仍需确认:

  • 打开settings.py,确保ALLOWED_HOSTS包含本地地址:
    ALLOWED_HOSTS = ['127.0.0.1', 'localhost']
    

7. 尝试直接用curl测试本地连接

在终端执行:curl http://127.0.0.1:8000

  • 若返回Django默认页面的HTML内容,说明服务器正常,问题可能出在浏览器设置(比如代理、缓存);
  • 若仍提示连接拒绝,回到第一步检查服务器启动日志。

内容的提问来源于stack exchange,提问作者Allison

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 23:48:29