Я разрабатываю приложение в django и помещаю его в Heroku.
Я хочу запросить мою базу данных с помощью SQL в моем views.py, поэтому я подключаюсь к своей базе данных с помощью connect
method.
Когда дело доходит до развертывания моего приложения, я, очевидно, хочу скрыть свои учетные данные базы данных.
Поэтому я сохраняю их в файле .env
в каталоге root и использую 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
файл.