파이썬 장고db에 데이터 넣기

정은경·2019년 12월 30일
0
import requests as rq
import csv
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "sirenorder.settings")
import django
django.setup()
from product.models import *
CSV_PATH = './product.csv'
with open(CSV_PATH, newline='') as csvfile:
    spamreader = csv.DictReader(csvfile)
    for row in spamreader:
        print(row)
        Product.objects.create(
            name = row['name'],
            english_name = row['en_name'],
            img_url = row['img_url'],
            only_ice = row['only_ice'],
            short_price = row['Short'],
            tall_price = row['Tall'],
            grande_price = row['Grande'],
            venti_price = row['Venti'],
            description = row['description'],
            condition = row['condition'],
            oz_price = row['oz'],
            price = row['price'],
            option = row['warming'],
            volume = row['volume'],
            purpose = row['option'],
            size = row['size'],
            weight = row['weight'],
            product_type_id = row['type'],
            section_id = row['section_id'],
            category_id = row['category_id']
            )
# create database tesla character set utf8mb4 collate utf8mb4_general_ci;
import os
a = os.system('find . -path "*/migrations/*.py"')
print(a)
b = os.system('find . -path "*/migrations/*.py" -not -name "__init__.py" -delete')
print(b)
os.system('python manage.py makemigrations')
os.system('python manage.py migrate')
os.system('python initialize_total_database.py')

파일 실행전에
mysql 들어가서 create database tesla character set utf8mb4 collate utf8mb4_general_ci;
databases는 만들어놓고 실행해야해요 ㅎㅎ

python initialize_total_database.py

import first_input_car_models_1
import second_input_car_types_table_from_car_type_csv_2
import third_input_car_type_price_3
import fourth_input_car_colors_table_from_car_colors_csv_4
import fifth_input_car_color_price_from_current_tables_5
import sixth_input_car_wheels_6
import seventh_input_car_wheel_price_7
import eighth_input_car_interior_8
import nineth_input_car_interior_prices_9

first_input_car_models_1

import csv
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "welonmusk.settings")
import django
django.setup()
from price.models import *
CSV_PATH = './car_model.csv'
with open(CSV_PATH, newline='') as csvfile:
	data_reader = csv.DictReader(csvfile)
	for row in data_reader:
		print(row)
		CarModels.objects.create(
			model_name = row['model_name']
		)

마이그레이션 지우기

find . -path "*/migrations/*.py" -not -name "__init__.py" -delete

이걸로 마이그레이션 파일들 전부 지우고
makemigrations 하고
migrate 해도
실제 mysql에 테이블 반영안되는 케이스가 있더라구요..
DESC [table]로 봐도 똑같던데
안될때 그냥 싹다날리는 것이 속이 편하다고 합니다.

감사해요 상록님!!
출처는 위코드 5기 이상록님:-)

profile
#의식의흐름 #순간순간 #생각의스냅샷

0개의 댓글