【发布时间】: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 文件中。
【问题讨论】:
-
你在使用
decouple这个github.com/henriquebastos/python-decouple吗?也许你可以分享你的requirements.txt。啊,你能分享完整的错误日志吗?
标签: django environment-variables connect credentials decoupling