Django 找不到我的环境变量? VIEW_DB_USER 未找到。将其声明为 envvar 或定义一个默认值

Django can't find my environment variable? VIEW_DB_USER not found. Declare it as envvar or define a default value

我正在用 django 开发一个应用程序并将其推送到 Heroku。

我想在 views.py 中使用 SQL 查询我的数据库,所以我使用 connect 方法连接到我的数据库。

在部署我的应用程序时,我显然想隐藏我的数据库凭据。

所以我将它们保存在根目录的 .env 文件中,并使用 config 函数从我的 views.py.

中调用这些变量

不过,我运行进入:

VIEW_DB_USER not found. Declare it as envvar or define a default value.

(在 view_db_user = config("VIEW_DB_USER") 处出错)

这是我的 views.py:

import os 
import django_heroku 
from decouple import config
import dj_database_url

view_db_user = config("VIEW_DB_USER")
view_db_password = config("view_db_password")
view_db_host = config("view_db_host")
view_db_database = config("view_db_database")

mydb = pg2.connect(user=VIEW_DB_USER, password=view_db_password,
                                host=view_db_host, database=view_db_database)

这是我的 .env 文件:

SECRET_KEY = 'credential_1'

VIEW_DB_USER = 'credential_2'
view_db_password = 'credential_3'
view_db_host = 'credential_4'
view_db_database = 'credential_5'

据我所知,问题是函数 config 无法正常工作。但是为什么?

请注意,这在本地和 heroku 上都不起作用。

另请注意,SECRET_KEY 包含另一个完美工作的数据库的密码,因为此密码存储在我的 .env 文件中。

已解决:

第一个问题是 .env 文件中的列。 通过以下修复,它在本地完美运行,而在 Heroku 上我仍然遇到相同的错误:

SECRET_KEY = 'credential_1'

VIEW_DB_USER = credential_2
view_db_password = credential_3
view_db_host = credential_4
view_db_database = credential_5

这是因为我忘记在 Heroku Config Vars 部分添加环境变量

https://dashboard.heroku.com/apps/my_app_name/settings

参见 this tutorial 段落 "deploying to Heroku"