импортируйте переменные, если файл существует

#python #django

Вопрос:

У меня есть два файла Python на одном уровне в моем приложении Django.

  • settings.py
  • SECRET.py

Я хочу импортировать переменные из SECRET.py в случае, если файл существует.

 # This code checks if you have the SECRET.py file to connect to the live server
if Path("SECRET.py").is_file():
    print("Live Database")
    from .SECRET import *
else:
    print("Local Database")
    NAME = 'blog_db'
    USER = 'postgres'
    PASSWORD = 'admin'
    HOST = 'localhost'
    PORT = '5432'

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': NAME,
        'USER': USER,
        'PASSWORD': PASSWORD,
        'HOST': HOST,
        'PORT': PORT,
    }

}
 

Код продолжает подключаться к локальной базе данных; выводит «Локальную базу данных», хотя у меня есть SECRET.py файл

Комментарии:

1. Ваш код пытается прочитать файл из текущего рабочего каталога. Этот каталог может совпадать или не совпадать с каталогом, в котором находится ваш скрипт.

Ответ №1:

Вы также можете завернуть его в try..except блок

 try:
  from .SECRET import *
except ImportError as error:
  # Do something else
 

Ответ №2:

Мне пришлось добавить имя основного каталога, чтобы получить к нему доступ

if Path("myBlog/SECRET.py").is_file():