Python Can';无法在Heroku上使用Django/Postgres应用程序设置

Python Can';无法在Heroku上使用Django/Postgres应用程序设置,python,django,postgresql,heroku,Python,Django,Postgresql,Heroku,我正在用两勺Django模板制作一个Django应用程序。收到这个Heroku错误,我的Postgres制作设置关闭了吗 操作错误/ 无法连接到服务器:连接被拒绝 服务器是否在主机“localhost”(127.0.0.1)上运行并接受 端口5432上的TCP/IP连接 异常位置:/app/.heroku/python/lib/python2.7/site packages/psycopg2/\uuuu init\uuuuu.py 工头开始工作很好 Procfile:web:python ww

我正在用两勺Django模板制作一个Django应用程序。收到这个Heroku错误,我的Postgres制作设置关闭了吗

  • 操作错误/ 无法连接到服务器:连接被拒绝 服务器是否在主机“localhost”(127.0.0.1)上运行并接受 端口5432上的TCP/IP连接
  • 异常位置:
    /app/.heroku/python/lib/python2.7/site packages/psycopg2/\uuuu init\uuuuu.py
  • 工头开始工作很好
  • Procfile:
    web:python www\u dev/manage.py runserver 0.0.0.0:$PORT--noreload
  • local.py设置:

    数据库={ “默认值”:{ “引擎”:“django.db.backends.postgresql_psycopg2”, “名称”:“www”, 'USER':'amyrlam', “密码”:“*”, '主机':'本地主机', “端口”:“5432”, } }

  • production.py设置:从上面注释掉本地设置,添加了标准Heroku Django内容:

    导入dj_数据库_url DATABASES['default']=dj_database_url.config()

    SECURE_PROXY_SSL_HEADER=('HTTP_X_FORWARDED_PROTO','https')

    允许的_主机=['*']

    导入操作系统 BASE_DIR=os.path.dirname(os.path.abspath(文件) STATIC\u ROOT='staticfiles' 静态URL='/STATIC/'

    静态文件\u目录=( join(BASE_DIR,'static'), )

  • 更新:生产设置,已尝试更改:

导入dj_数据库_url DATABASES['default']=dj_database_url.config(default=os.environ[“database_url”])


(名为my Heroku color URL to DATABASE_URL,与Heroku config中的链接相同)

您是否设置了DJANGO_SETTINGS_MODULE环境变量?我相信发生的事情是这样的:默认情况下,Django使用的是您的
local.py
设置,这就是它试图在localhost上连接的原因

要使Django检测并使用您的
production.py
设置,您需要执行以下操作:

heroku config:set DJANGO\u SETTINGS\u MODULE=SETTINGS.production


这将使Django在您使用Heroku时加载您的production.py设置:)

非常感谢,这对我很有用。在wsgi.py和manage.py中,我明确地将DJANGO_SETTINGS_模块称为myprojectname.SETTINGS.production。要在本地运行,我运行
python manage.py runserver--settings=myprojectname.settings.local
。这看起来是一个不错的工作流程吗?是的,很好!这是最佳实践:)