Создание нового проекта, настройка подключения к БД

Для создания нового проекта в Django используется команда startproject утилиты django-admin:

django-admin startproject <название проекта> [<путь к каталогу проекта>]

Путь можно не указывать – в этом случае папка будет создана в текущем каталоге с именем, совпадающим с названием проекта. В дальнейшем данную папку можно переименовать или перемещать в другое место, на работоспособность проекта это не повлияет.

Для хранения настроек проекта используется файл settings.py пакета конфигурации. В большинстве случаев параметры уже имеют значения по умолчанию, которые обычно являются оптимальными.

Для хранения настроек используются обычные переменные Python. Имя переменной совпадает с именем переменной.

Перечислим основные настройки:

— BASE_DIR – путь к каталогу проекта. По умолчания устанавливается автоматически;
— DEBUG – режим работы интернет-сайта: эксплуатационный (значение False) или отладочный (True, устанавливается при создании проекта). При работе в отладочном режиме при возникновении любой ошибки страница сайта содержит ее детальное описание. В противном случае выводится стандартное сообщение, например, «Страница не найдена». Также при эксплуатационном режиме используются более строгие параметры безопасности;
— DEFAULT_CHARSET – кодировка страниц (по умолчанию utf-8);
— ROOT_URLCONF – хранит путь к модулю с маршрутами уровня проекта, заполняется автоматически при создании проекта;
— SECRET_KEY – содержит секретный ключ в виде строки символов. Используется подсистемой разграничения доступа для шифрования данных. Генерируется автоматически утилитой django-admin.
Менять его без необходимости не рекомендуется. Также его необходимо хранить в секрете, поскольку ключ может использоваться злоумышленниками для взлома сайта.

Параметры баз данных

Все базы данных, задействованные в проекте, указываются в параметре DATABASES. В качестве значения должен использоваться словарь Python. Ключи элементов задают псевдонимы БД, зарегистрированных в проекте. Ограничения на количество баз данных нет. Если в процессе операций моделями проекта не указывать базу данных, будет подключена база с псевдонимом default.

В качестве элементов словаря также присутствуют словари, которые хранят остальные параметры базы данных.

При создании нового проекта параметру DATABASES автоматически присваивается следующее значение:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join.(BASE_DIR, 'db.sqlite3'),
    }
}

Указывается единственная база данных, используемая по умолчанию. БД хранится в файле db.sqlite3 (каталог проекта) используется формат SQLite.

Django поддерживает следующие параметры баз данных:

— ENGINE – определяет формат подключаемой базы данных. Представляет собой путь к модулю, который реализует корректное взаимодействие с определенным форматом БД. Доступны следующие значения:

    — django.db.backends.sqlite3 – SQLite;
— django.db.backends.postgresql – PostgreSQL;
    — django.db.backends.mysql – MySQL;
    — django.db.backends.oracle – Oracle;

— NAME – содержит путь к файлу БД (для SQLite), имя базы данных при использовании серверных СУБД;

— TIME_ZONE – временная зона, применяемая для даты и времени, хранящихся в базе. Используется, если подключенная БД не поддерживает добавление временной зоне при хранении даты и времени. По умолчанию – None.

Также есть параметры, которые используются только для серверных СУБД:

— HOST – интернет-адрес ПК, на котором функционирует данная СУБД;
— PORT – указывает номер TCP-порта для подключения к СУБД. По умолчанию значением является пустая строка (подключение через порт по умолчанию);
— USER – имя пользователя для подключения к БД;
— PASSWORD – пароль для подключения;
— CONN_MAX_AGE – время в секундах, в течение которого соединение с базой данных будет открыто. Если значение равно 0 (по умолчанию), соединение закрывается после обработки запроса. Если значение None, соединение активно постоянно;
— OPTIONS – набор дополнительных параметров, специфичных для текущей БД. Представляет собой словарь, где каждый параметр представляет собой отдельный параметр.

Ниже будет представлен пример кода, обеспечивающий подключение базе данных MySQL, которая называется sitedb и работает на этом же ПК. Имя пользователя – userdb, пароль passworddb:

DATABASES = {
    'default ': {
        'ENGINE': 'django.db.backends.mysql',
        'HOST': 'localhost',
        'USER': 'userdb',
        'PASSWORD': 'passworddb',
        'NAME': 'sitedb'
    }
}




Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: