#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():