Почему Django не видит мой json-файл в базовом каталоге?

Моя структура файлов здесь Я новичок в Django. И я читал в "2 Scoops of Django", что хранить пароль базы данных и т.д. в settings.py это плохо.

Итак, я решил хранить пароль и т.д. в json файле, затем я расширил settings.py этим кодом:

import json
import os
from django.core.exceptions import ImproperlyConfigured

with open(os.path.join(BASE_DIR, 'secrets.json')) as secrets_file:
    secrets = json.load(secrets_file)

def get_secret(setting, secrets=secrets):
    """Get secret setting or fail with ImproperlyConfigured"""
    try:
        return secrets[setting]
    except KeyError:
        raise ImproperlyConfigured("Set the {} setting".format(setting))

Итак, я решил эту проблему. Моя ошибка заключалась в том, что я скопировал переменную BASE_DIR из settings.py и не понял, что она делает, поэтому моя функция не видела мой конфигурационный файл для БД. Я перенес функцию в другой файл, немного отредактировал переменную BASE_DIR и все заработало. И я получил этот файл:

from pathlib import Path
import json
import os
from django.core.exceptions import ImproperlyConfigured

BASE_DIR = Path(__file__).resolve().parent
# reads json with config for database
with open(os.path.join(BASE_DIR, 'settings_db/settings_for_db.json')) 
as secrets_file:
secrets = json.load(secrets_file)


def get_secret(setting, secrets=secrets):
   """Get secret setting or fail with ImproperlyConfigured"""
   try:
       return secrets[setting]
   except KeyError:
       raise ImproperlyConfigured("Set the {} 
       setting".format(setting))
Вернуться на верх