wecode TIL day 13 (Oct 31)

Jae Hoon Shin, 신재훈, Noah·2020년 10월 31일
0

위코드 노션에 Django 3-1. django C.R.U.D(1)
Django 2 Data, QuerySet.

에 나와있는 내용을 하루종일 했다.
세부 내용은 노션에 가서 체크하자

mysql> show databases; (데이터베이스들 다 보여줘라 )

위처럼 데이터베이스들이 보이면

mysql> use starbucksdatabase;
(난 starbucksdatabase 데이터베이스를 사용하겠다!)
그러면 그 database로 바뀌였다는 말이 나오고
mysql> show tables;
라고 치면.... 위 사진처럼 비었다고 나온다. 마치 에러 해결 못하고 있을 때 내 머리속처럼
이게 migration을 안해서 그렇다.

모델 활성화 하기,
모델 활성화 전에 해야하는 것이 migration 인데, 내가 모델을 변경시킨 사실(또는 생성했다는 사실)과 이 변경사항을 migration으로 저장하고 싶다는 것을 Django 에게 알려주는 것이다.

.>>> python manage.py makemigrations products (앱이름)
그 다음에
.>>> python manage.py migrate
해서 에러 안뜨면 썩쎄쓰....
이제 migration을 했으니까, mysql가서 show tables 하면;

자 이제 SHELL 을 켠다.

.>>> python manage.py shell

위처럼 SHELL 킬 때마다, import 해줘야 합니다. 안그러면 클래스를 읽어올 수가 없어요,

.>>> from products.models import Menu, Category, Product

Menu라는 테이블을 만들고 name 이라는 컬럼에 음료라는 데이터를 넣겠다.

.>>> Menu.objects.create(name="음료")

그 다음에 mysql에
mysql> select * from products_menu;
products_menu 테이블에 있는거 다 가져와라 라는 뜻

더 add하고 싶다면 같은 방식으로 하면 된다.

자 이제 그 다음 단계!

Category테이블에서 Menu_id를 참조하고 있다.
참조하는 법!

일단 개념 먼저 알고 넘어가자

Category테이블에서 Menu_id를 참조하고 있다.

.>>> Product.objects.create(name="test1", price = 1111, category_id=1)
OR
.>>> c10 = Category.objects.get(id=1)
.>>> Product.objects.create(name="test2", price 2222, category = c10)

위 둘의 코드는 같다!
어찌어찌 공을 들여 테이블을 완성하고 내가 어떻게 했나하고 살펴보았는데, 방법을 다르게 했는데 어떤건 _id 가 자동으로 붙고, 어떤건 아니였다.

그래서 수많은 에러메세지로 샤워할 각오를 하고 둘다 해봤다.
그 결과

에러가 안뜨고 둘다 나왔다!!!
두 번째 방법은 c10으로 인스턴스 선언을 하고 category = c10을 함으로써 읽어오는 것 같았다.

카테고리라는 테이블에 name이라는 칼럼을 만들고


  • b1 = Category.objects.get(name="콜드브루")

Product.objects.create(name="콜드 브루 커피", category=b1, price = 4500)

saturated_fat_g = models.DecimalField(max_digits=10,decimal_places=2, null=True)

Standard SQL requires that DECIMAL(5,2) be able to store any value with five digits and two decimals

테이블 컬럼 순서 바꾸는 법

ALTER TABLE table_name MODIFY password varchar(20) AFTER id

참고로 mysql 언어임

과제한 것 결과.

아래 노션에 가면 python & Mysql 명령어들이 나온다.
https://www.notion.so/Django-MySQL-Query-Set-API-Cheat-Sheet-b1e6ebf20d9e456a88f374d91f3be25d

위 사진같은 중요한 정보들이다.

profile
🇰🇷🇺🇸 #Back-End Engineer

0개의 댓글