๐Ÿงคcsv > mysql ์—…๋กœ๋“œ

may_soouuยท2020๋…„ 9์›” 11์ผ
0

mysql

๋ชฉ๋ก ๋ณด๊ธฐ
1/3
post-thumbnail

ํฌ๋กค๋ง์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฝ‘๊ณ , csvํŒŒ์ผ์„ ์ƒ์„ฑํ–ˆ์œผ๋ฉด ์ด์ œ db์— ์—…๋กœ๋“œ ํ•ด๋ณด์ž

1. ํŒŒ์ผ ์ƒ์„ฑ

project ํŒŒ์ผ์˜ ๋ฃจํŠธ ๊ฒฝ๋กœ(=manage.py๊ฐ€ ์žˆ๋Š” ๊ฒฝ๋กœ)์— csv ํŒŒ์ผ ์—…๋กœ๋“œ๋ฅผ ์œ„ํ•œ file์„ ์ƒ์„ฑํ•œ๋‹ค.

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "soohyunlee.settings")
# settings์•ž์€ ํ”„๋กœ์ ํŠธ ๋ช…
django.setup()

from products.models import Product
# ๋‚ด๊ฐ€ ๋„ฃ๊ณ ์ž ํ•˜๋Š” ํ…Œ์ด๋ธ”์ด ์žˆ๋Š” ์•ฑ(products)์—์„œ class(prodcuct)๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค
CSV_PATH_PRODUCTS = './starbucks_product.csv'
# ํฌ๋กค๋งํ•˜๋ฉด์„œ ์ƒ์„ฑํ•œ csvํŒŒ์ผ
# ์ƒ๋Œ€๊ฒฝ๋กœ์ด๊ธฐ ๋•Œ๋ฌธ์—, ์ด ํŒŒ์ผ๊ณผ csvํŒŒ์ผ์€ ๊ฐ™์€ ์œ„์น˜์— ์žˆ์–ด์•ผํ•œ๋‹ค.

# ํŒŒ์ผ์„ ์—ด์–ด์„œ csv ํŒŒ์ผ์„ mysql row๋กœ ๋„ฃ์–ด์ค€๋‹ค.
with open(CSV_PATH_PRODUCTS) as in_file:
    data_reader = csv.reader(in_file)
    for row in data_reader:
        if row[0]:
            menu_name = row[0]
            image_url = row[1]

Product.objects.create(
    	name = menu_name, 
    	image_url = image_url
    	)
#name๊ณผ image_url์€ classํ•จ์ˆ˜ ๋‚ด ๋‚ด๊ฐ€ ์„ค์ •ํ•œ ๋ณ€์ˆ˜๋ช…์ด๋‹ค.

2. ์‹คํ–‰ํ•ด์„œ ํ™•์ธํ•ด๋ณด๊ธฐ

sql ์—์„œ ์ œ๋Œ€๋กœ ํ™•์ธํ•ด๋ณด์ž

mysql.server start
mysql -u root -p (๋น„๋ฐ€๋ฒˆํ˜ธ ์ž…๋ ฅ)

mysql> use test;
 # use ๋ณด๋ ค๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ช… ์ž…๋ ฅ
 
mysql> show tables;
 # DB์•ˆ์— ํ…Œ์ด๋ธ” ๋ฆฌ์ŠคํŠธ ํ™•์ธ๊ฐ€๋Šฅ
 # ์žฅ๊ณ ๋กœ ํ…Œ์ด๋ธ”์„ ์งฐ๋‹ค๋Š” ๊ฐ€์ •ํ•˜์—, models.py์— ์ฝ”๋“œ ์ง  ํ…Œ์ด๋ธ”์ด ๋ณด์ธ๋‹ค
 
select * from product_list;
 # ๊ทธ๋Ÿผ ๋‚ด๊ฐ€ ํ…Œ์ด๋ธ” ์•ˆ์— ๋„ฃ์€ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณด์—ฌ์ง„๋‹ค.

use test ๋ฅผ ๋”ฐ๋กœ ์ž…๋ ฅํ•˜์ง€ ์•Š๊ณ , ์•„๋ž˜์™€ ๊ฐ™์ด select ๋ฌธ์—
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ช….ํ…Œ์ด๋ธ”๋ช… ๊ฐ™์ด ์ž…๋ ฅํ•ด์„œ ๋ฐ”๋กœ ํ™•์ธ๊ฐ€๋Šฅํ•˜๋‹ค.
select * from test.product_list;

profile
back-end ๊ฐœ๋ฐœ์ž

0๊ฐœ์˜ ๋Œ“๊ธ€