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

部署Django项目至PythonAnywhere时PostgreSQL连接失败求助

解决PythonAnywhere部署Django连接Neon PostgreSQL的连接拒绝问题

排查与修复步骤

  • 调整端口与SSL设置
    PythonAnywhere默认拦截标准PostgreSQL端口5432的出站连接,Neon提供了SSL加密的5433端口可绕过限制。修改settings.py的数据库配置:

    DATABASES = {
        "default": {
            "ENGINE": "django.db.backends.postgresql_psycopg2",
            "NAME": "<the database>",
            "USER": "<User>",
            "PASSWORD": "<Password>",
            "HOST": "<Host>",
            "PORT": 5433,  # 替换为5433
            "OPTIONS": {
                "sslmode": "require",  # 强制启用SSL连接
            },
        }
    }
    
  • 检查Neon的IP访问控制
    确认Neon控制台的数据库访问规则是否允许PythonAnywhere的服务器IP。临时将ACL设置为0.0.0.0/0(允许所有IP)测试连接,验证后再根据PythonAnywhere的IP范围缩小权限。

  • 确保依赖库正确安装
    在PythonAnywhere环境中优先安装psycopg2-binary,避免系统库依赖问题:

    pip install psycopg2-binary --upgrade
    
  • 用最简脚本验证连接
    编写独立测试脚本排除Django框架的影响,直接测试数据库连接:

    import psycopg2
    
    try:
        conn = psycopg2.connect(
            dbname="<the database>",
            user="<User>",
            password="<Password>",
            host="<Host>",
            port=5433,
            sslmode='require'
        )
        print("数据库连接成功")
        conn.close()
    except Exception as e:
        print(f"连接失败原因: {str(e)}")
    

    在PythonAnywhere的终端运行该脚本,确认连接是否正常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 11:05:17