Notice
Recent Posts
Recent Comments
Link
WinGyu_coder
Django Python, 장고로 csv, Json 파일 다운로드 구현하기 본문
오늘은 Django 장고 프레임 워크를 통해 csv, json 파일 다운로드를 구현할려고 한다.
우선 각각 라이브러리 및 프레임워크를 가져온다.
from django.http import HttpResponse
# 이건 이제 데이터를 가져올려고 임포트 했다, 가져올 데이터마다
# 예시용
from .models improt CarModel
import json
import csv
유저가 요청했을때 DB에 있는 데이터를 꺼낼 수 있고, 웹에서 가져온 데이터를 보낼 수 있고, 그건 개발하는 사람 마다 다르기 때문에 필자는 예시용으로 CarModel을 가져왔다.
소스 코드는 아래와 같다
Json 다운로드 예제 코드 1
def download_json_file(request, pk):
try:
car = CarModel.objects.get(pk=pk)
except CarModel.DoesNotExist:
raise NotFound
car = car
result = car["name"]
data = {
"pk":pk,
"car": result,
}
# 데이터를 JSON 형식으로 변환
json_data = json.dumps(data)
# JSON 파일로 다운로드 받기 위한 HttpResponse 생성
response = HttpResponse(json_data, content_type='application/json')
response['Content-Disposition'] = 'attachment; filename="example.json"'
return response
위 코드를 보면 CarModel에서 차 이름을 가져와서 사용자에게 Json 파일을 다운받게 하는 방법이다.
response['Content-Disposition'] = 'attachment; filename="example.json"'
이 부분에서 example.json 부분을 수정하면 파일명을 바꿀 수 있다.
그다음 csv 파일이다.
CSV 파일 다운로드 예제코드
def download_csv_file(request, pk):
try:
car = CarModel.objects.get(pk=pk)
except CarModel.DoesNotExist:
raise NotFound
# DB에서 정보를 조회하는 가정의 코드
car = car
name = car["name"]
brand = car["brand"]
response = HttpResponse(
content_type='text/csv',
headers={'Content-Disposition': f'attachment; filename="file_name.csv"'},
)
# CSV writer 생성
writer = csv.writer(response)
# CSV 헤더 작성
writer.writerow(['brand', "name"])
# CSV 데이터 행 작성
writer.writerow([brand, name])
return response
맨 처음 헤더 작성후 아래 내용을 넣으면 된다.
'Django 백엔드의 모든것' 카테고리의 다른 글
Django, React 장고로 로그인 구현하기, 토큰 방식 (2) | 2024.04.01 |
---|---|
Django, React 장고, 리액트 로그인 인증 통신하기. 풀스택 (0) | 2024.03.29 |
Python, Django 장고로 모의투자 서비스 제작하기 (6) - Python으로 Django DB에 데이터 저장하기 (0) | 2024.03.02 |
Python, Django 장고로 모의투자 서비스 제작하기 (5 - 1) - Django DB에 엑셀 데이터 넣기 (0) | 2024.03.02 |
Python, Django 장고로 모의투자 서비스 제작하기 (5) - Django models.py 모델 필드 정의하기 (0) | 2024.02.26 |