본문 바로가기

Django 입문

2-02 모델

  장고는 모델(Model)을 이용하여 데이터베이스를 처리한다. 보통 데이터베이스에 데이터를 저장하고 조회하기 위해서 SQL 쿼리문을 이용해야 하지만 장고의 모델(Model)을 사용하면 이런 SQL 쿼리문의 도움없이 데이터를 쉽게 처리할 수 있다.

--------------------------------------------------------번외--------------------------------------------------------

데이터베이스가 필요한 앱만 migrate가 필요하다.

 

# python manage.py makemigrations polls

polls라는 앱, makemigrations 명령어 : DB내 테이블을 생성하기 위한 설계도를 만듦

 

# python manage.py migrate

DB내 실제 테이블을 생성

 

----------------------------------------------------------------------------------------------------------------

 

 

우리 프로젝트의 BASE_DIR은 C:\projects\mysite이다. 

 

 

 

 

Question 모델은 제목(subject), 내용(content) 그리고 작성일시(create_date)를 속성으로 갖도록 작성했다. 제목은 최대 200자까지 가능하도록 max_length=200을 설정하였다. 제목처럼 글자수의 길이가 제한된 텍스트는 CharField를 사용한다. 내용(content)처럼 글자수를 제한할 수 없는 텍스트는 위처럼 TextField를 사용한다. 작성일시처럼 날짜와 시간에 관계된 속성은 DateTimeField를 사용한다.

Answer 모델은 질문에 대한 답변에 해당되므로 Question 모델을 속성으로 가져가야 한다. 기존 모델을 속성으로 연결하려면 ForeignKey를 사용해야 한다. ForeignKey는 다른 모델과 연결하기 위해 사용한다. on_delete=models.CASCADE의 의미는 이 답변과 연결된 질문(Question)이 삭제될 경우 답변(Answer)도 함께 삭제된다는 의미이다.

질문 하나에는 무수히 많은 답변이 등록될 수 있다. CASCADE 옵션은 질문을 삭제하면 그에 달린 답변들도 모두 함께 삭제한다.

 

 

 

 

 

 

 

 

 

 

 

 

 

점프투장고

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'Django 입문' 카테고리의 다른 글

Django Docs Tutorial  (0) 2022.07.09
2-01 URL과 뷰  (0) 2022.07.05
Recent Posts
Popular Posts
Recent Comments