Недавно я наткнулся на стороннюю библиотеку для Django django-import-export
, позволяющую импортировать и экспортировать данные через панель администратора для файлов разных форматов (csv
, json
, xls
, xml
, yaml
, tsv
) . Сегодня мы собираемся исследовать эту библиотеку и посмотреть, как она работает.
Введение
django-import-export
— это приложение и библиотека Django для импорта и экспорта данных с включенной интеграцией администратора.
Требования
django
django-import-export
1. Настройка проекта
Нажмите здесь и следуйте инструкциям по созданию и активации виртуальной среды.
Затем установите все пакеты, указанные в файле requirements.txt.
2. Создайте проект
django-admin startproject importexportadmin .
Примечание. Значок “.” в конце указывает manage.py
, что вы хотите, чтобы проект был создан в текущей папке, а не в подпапка.
3. Создайте приложение
python manage.py startapp app
Примечание. Мы можем создавать несколько приложений в одном проекте, но не несколько проектов внутри одного проекта.
4. Зарегистрируйте приложение и import_export
внутри файла settings.py
для сбора статических файлов.
# settings.py INSTALLED_APPS = ( ... 'app', 'import_export', )
5. Теперь, когда все готово, идем дальше и создаем модели.
#app/models.py class Report(models.Model): title = models.CharField(max_length=100) description = models.TextField() cost = models.IntegerField() create_at = models.DateTimeField(auto_now_add=True) def __str__(self): return self.title
Теперь выполните приведенные ниже команды в порядке появления, чтобы создать таблицы базы данных.
python manage.py makemigrations python manage.py migrate
6. Создайте суперпользователя и войдите в панель администратора.
python manage.py createsuperuser
После выполнения этой команды вы увидите следующее сообщение:
Username (leave blank to use 'admin'): Email address: Password: Password (again):
После ввода логина и пароля вы можете войти в админ-панель по ссылке:
Но вы не сможете увидеть таблицу Отчет в панели администратора.
7. Теперь пропишем модель в админке
Нам нужно будет сначала создать ресурс, а затем зарегистрировать ресурс в панели администратора.
Чтобы интегрировать django-import-export с нашей моделью Report, мы создадим класс ModelResource в resource.py, который будет описывать, как этот ресурс может быть импортированы или экспортированы:
#app/resource.py from import_export import resources from .models import Report class ReportResource(resources.ModelResource): class Meta: model = Report
Теперь мы зарегистрируем класс ModelResource в панели администратора.
#app/admin.py from import_export.admin import ImportExportModelAdmin from django.contrib import admin from .resource import ReportResource from .models import Report class ReportAdmin(ImportExportModelAdmin): resource_class = ReportResource admin.site.register(Report, ReportAdmin)
Теперь войдите в панель администратора, и вы сможете увидеть таблицу отчетов.
На изображении выше мы видим три кнопки в правом верхнем углу чуть ниже LOG OUT
.
Import
Export
Report
Import
: Когда вы нажмете кнопку импорта, вы сможете импортировать файл.
- Файл для импорта: Выберите файл, который вы хотите импортировать.
- Формат. Выберите формат файла, который вы хотите импортировать.
Теперь нажмите на кнопку Summit
; он покажет вам предварительный просмотр данных, представленных в файле CSV, как показано на изображении ниже.
Нажмите кнопку Corfirm
Import, чтобы импортировать данные.
Экспорт: Нажав кнопку Экспорт, вы сможете экспортировать файл.
- Формат. Выберите выходной формат, в который вы хотите экспортировать данные.
Ссылка
https://django-import-export.readthedocs.io/en/latest/
Гитхаб:
Спасибо, что прочитали. Если вы обнаружите, что что-то не так или вы найдете лучшие способы сделать это, дайте мне знать в комментариях ниже.
Если вам понравилась запись, нажмите кнопку 👏 ниже, чтобы другие могли найти ее полезной. Вы можете подписаться на меня наGitHub и связаться со мной на Linkedin.