티스토리 뷰

INTRO

Django model db를 csv로 내보내기(db to csv export)

DB Browser SQLite를 통해 csv export(csv 내보내기)도 가능

csv to django model db

 

view request 기반 model manager(model.object.create)를 이용

DB 생성하고자하는 app의 views.py를 이용 : ORM path 용이
views.py
from django.shortcuts import render
from [Your-App].models import [model_name]
from .data.db_to_csv_run import db_to_csv


# Create your views here.
def test_db_to_csv(request):
	db_to_csv([model_name])
	return render(request, '[Your-tempates-name]/test_db_to_csv_view.html')

 

[Your-App]/data/db_to_csv_run.py
import csv
import os, sys
import django

def db_to_csv(django_model):
	os.environ.setdefault("DJANGO_SETTINGS_MODULE", "django-erp2.settings")
	django.setup() 
	csv_path = '/Users/jiwonlee/.pyenv/versions/3.10.0/envs/persona-erp/django-erp2/persona/data/db_to_csv.csv'
	with open(csv_path, 'w', newline='') as f_csv:
		field_names = ['id', '[Your-Field_1]', '[Your-Field_2]']
		data_writer = csv.DictWriter(f_csv, fieldnames=field_names) 
		data_writer.writeheader()

		for row in django_model.objects.all():
			print(row)
			print(row.id)
			data_writer.writerow({
				'id':row.id,
				'[Your-Field_1]':row.[Your-Field_1], 
				'[Your-Field_2]':row.[Your-Field_2], 
				})

 

db_to_csv.csv로 내보내기 완료
id [Your-Field_1]_id [Your-Field2] ...
... ... .... ...
5 P00001-20211205 1 ...
6 P00001-20211206 1 ...

 

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함