[英]How to solve server error (500) while deploying Django project to Heroku?
[英]How to solve this error "connection to local host failled " while deploying my django project on heroku
我正在使用 Django 制作 Facebook 应用程序,并希望在 Heroku 上部署我的项目。 在部署我的项目时,我使用解耦模块将重要数据放入 .env 文件中。 我的 settings.py 文件如下所示:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': config('DB_NAME'),
'USER': config('DB_USER'),
'PASSWORD' : config('DB_PASSWORD'),
'HOST' : config('DB_HOST'),
'PORT': '5432',
}
}
AUTH_PASSWORD_VALIDATORS = [
{
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
},
]
USE_I18N = True
USE_TZ = True
STATIC_URL = 'static/'
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]
STATIC_ROOT = os.path.join(BASE_DIR, 'assets')
STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'
# Default primary key field type
我的 .env 文件看起来像这样
SECRET_KEY=#####
DB_NAME=#######
DB_USER=########
DB_PASSWORD=#######
DB_HOST=#########
我正面临这个错误:
OperationalError at /login
connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused
Is the server running on that host and accepting TCP/IP connections?
Request Method: POST
Request URL: https://facebook-django-akhil.herokuapp.com/login
Django Version: 4.0.6
Exception Type: OperationalError
Exception Value:
connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused
Is the server running on that host and accepting TCP/IP connections?
Exception Location: /app/.heroku/python/lib/python3.10/site-packages/psycopg2/init.py, line 122, in connect
Python Executable: /app/.heroku/python/bin/python
Python Version: 3.10.5
Python Path:
['/app/.heroku/python/bin',
'/app',
'/app/.heroku/python/lib/python310.zip',
'/app/.heroku/python/lib/python3.10',
'/app/.heroku/python/lib/python3.10/lib-dynload',
'/app/.heroku/python/lib/python3.10/site-packages']
Server time: Thu, 14 Jul 2022 13:44:31 +0000
您还需要创建一个数据库来配合您的应用程序。 由于您已经在使用 Heroku,您可以将 Heroku Postgres 用作应用程序插件。
要在免费层上为您的应用创建数据库:
heroku addons:create heroku-postgresql:hobby-dev
现在,Heroku 将自动为您的应用注入DATABASE_URL
环境变量,因此您需要在应用中使用该信息来连接数据库:
# Parse database configuration from $DATABASE_URL
import dj_database_url
DATABASES = {
'default': dj_database_url.config()
}
对于您的本地开发环境,您可以从.env
中删除DB_NAME
、 DB_USER
和其他DB_XXX
环境变量,并将DATABASE_URL=postgres://username:password@localhost/dbname
添加到您的.env
中,填写正确的用户名、密码,当然还有 dbname。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.