【问题标题】:Django can't find my environment variable? VIEW_DB_USER not found. Declare it as envvar or define a default valueDjango 找不到我的环境变量?未找到 VIEW_DB_USER。将其声明为 envvar 或定义默认值
【发布时间】:2020-05-16 09:08:39
【问题描述】:

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

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

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

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

但是,我遇到了:

VIEW_DB_USER 未找到。将其声明为 envvar 或定义一个默认值 价值。

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 文件中。

【问题讨论】:

标签: django environment-variables connect credentials decoupling


【解决方案1】:

已解决:

第一个问题是.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

请参阅“部署到 Heroku”段落中的 this tutorial

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-04
    • 2018-08-19
    • 2020-03-07
    • 2016-10-27
    • 1970-01-01
    • 2020-08-23
    • 2017-10-15
    • 1970-01-01
    相关资源
    最近更新 更多