ansmirnov

Django BASE_DIR

Теги: Programming, Python, Django, SQLite, HowTo

При работе Django с использованием SQLite3 в качестве СУБД в конфигурационном файле необходимо указать путь до файла БД. Предположим, что есть необходимость хранить файл БД в каталоге с проектом. Указывать относительный путь до БД не рекомендуется по ряду причин. Абсолютный путь до проекта тоже не самый лучший вариант, потому что проект может быть перемещен в другой каталог. При коллективной работе над проектом проект может быть размещен в разных каталогах. В таком случае можно использовать следующий прием.

В конфигурационном файле Django (config.py) определяем переменную BASE_DIR:

BASE_DIR = os.path.abspath(os.path.dirname(os.path.abspath(__file__)) + '/..')

Эта переменная будет всегда хранить путь до каталога проекта. Теперь можно настроить коннектор с БД:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR+'/data.db',
        'USER': '',
        'PASSWORD': '',
        'HOST': '',
        'PORT': '',
    }
}