Команда Django loaddata в Python — пример использования

Команда Django loaddata в Python позволяет загружать данные из файла в базу данных. Обычно команда dumpdata используется для экспорта данных из базы данных, а команда 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
Похожие посты
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *