이 글에서는 Django에서 모델 데이터를 .csv 형식으로 내보내는 방법을 소개합니다. 실무에서는 모델 데이터를 .csv, json, .xlsx 등 다양한 형식으로 내보내 후속 작업이나 보고서 작성에 활용해야 하는 경우가 종종 있습니다. 직접 스크립트를 작성하는 방법도 있지만, 여기서는 훨씬 더 간편한 방법을 알려드리겠습니다.
Django 프로젝트를 생성하고 앱을 추가한 뒤, urls를 설정하고 INSTALLED_APPS에 앱을 등록하는 등 기본적인 환경 설정을 먼저 마쳐 주세요.
그다음 모델을 생성합니다. 이번 예제에서는 views.py, urls.py나 HTML 파일을 따로 다룰 필요가 없습니다. 작업은 settings.py, admin.py, models.py 그리고 admin URL만으로 충분합니다.
예제
먼저 필요한 패키지를 설치합니다 −
pip install django-import-export
settings.py에 다음과 같이 추가합니다 −
INSTALLED_APPS += ['import_export']
이렇게 하면 해당 라이브러리가 프로젝트의 하나의 앱으로 등록되어 정상적으로 동작하게 됩니다.
테스트용 모델을 생성합니다 −
class StudentData(models.Model): name=models.CharField(max_length=100) standard=models.CharField(max_length=100) section=models.CharField(max_length=100)
여기서는 학생 정보를 담는 간단한 더미 모델을 만들어 테스트했습니다.
admin.py에 다음 코드를 작성합니다 −
from django.contrib import admin from .models import StudentData from import_export import resources from import_export.admin import ImportExportModelAdmin class StudentResource(resources.ModelResource): class Meta: model = StudentData class StudentAdmin(ImportExportModelAdmin): resource_class = StudentResource admin.site.register(StudentData, StudentAdmin)
ImportExportModelAdmin을 상속받는 어드민 클래스를 정의하고, 이를 관리자 사이트에 등록하면 관리자 패널에서 가져오기·내보내기 기능을 바로 사용할 수 있습니다.
실행 결과
이제 브라우저에서 https://127.0.0.1/admin 으로 접속합니다.


관리자 화면에서 '내보내기(Export)' 버튼을 클릭하면 모델 데이터를 원하는 형식(CSV, JSON, XLSX 등)으로 손쉽게 내보낼 수 있습니다. 별도의 스크립트 작성 없이 몇 줄의 설정만으로 데이터 추출 기능을 완성할 수 있다는 점이 이 방법의 가장 큰 장점입니다.