Команда Django loaddata в Python — пример использования
Команда Django loaddata в Python позволяет загружать данные из файла в базу данных. Обычно команда dumpdata используется для экспорта данных из базы данных, а команда loaddata — для импорта данных из файла в ту же или другую базу данных.
- Введение в команду Django loaddata
- Настройки каталога приспособлений
- Загрузка выборочных данных HR с помощью команды Django loaddata
Введение в команду Django loaddata
Ниже показан синтаксис команды loaddata:
python manage.py loaddata fixture_name
Фикстура — это набор файлов данных, которые Django будет использовать для импорта в базу данных. По соглашению Django будет искать фикстуры в каталоге фикстур каждого приложения и импортировать из них данные.
Например, ниже показан каталог Fixtures и файл hr.json в приложении hr проекта:
├── admin.py ├── apps.py ├── fixtures | └── hr.json ...
Ниже показан фрагмент файла hr.json:
[ { "model": "hr.contact", "pk": 1, "fields": { "phone": "40812345678", "address": "101 N 1st Street, San Jose, CA" } }, { "model": "hr.contact", "pk": 2, "fields": { "phone": "4081111111", "address": "202 N 1st Street, San Jose, CA" } }, ...
Чтобы загрузить hr.json в базу данных, используйте следующую команду loaddata:
python manage.py loaddata hr.json
Настройки каталога приспособлений
По умолчанию Django находит файлы данных в каталоге fixtures внутри каждого приложения. Чтобы указать дополнительные каталоги, содержащие файлы fixtures, вы можете задать их в списке FIXTURE_DIRS в файле settings.py:
FIXTURE_DIRS = ['path/to/fixtures/dir', 'path/to/fixtures/dir2']
Загрузка выборочных данных HR с помощью команды Django loaddata
Мы будем использовать команду loaddata для загрузки данных из фикстур для приложения HR проекта Django.
Сначала загрузите исходный код проекта и распакуйте его в каталог. В каталоге hr/fixtures находится файл data.json, содержащий образцы данных по кадрам.
Во-вторых, выполните команду loaddata для загрузки данных из файла data.json:
python manage.py loaddata data.json
Должно получиться что-то вроде этого:
Installed 471 object(s) from 1 fixture(s)2