1. migrate 명령으로 기본테이블 생성
(venv)prompt> python manage.py migrate
- DB Browser for SQLite 를 다운받으면 데이터베이스 내부 테이블을 들여다 보기 좋다.
- 장고의 ORM(Object Relational Mapping)은 쿼리문을 몰라도 데이터베이스 작업이 가능하게 해준다.
- ORM은 아래와 같은 데이터 베이스 사용방식의 단점 3가지를 제거한다.
- 첫번째, 쿼리문은 같은 목적으로 작성해도 개발자마다 다양한 쿼리문이 만들어지므로 통일성이 없다.
- 두번째, 개발자가 쿼리문을 잘못 작성하게되면 시스템 성능이 떨어진다.
- 세번째, 데이터베이스를 변경하면 특정데이터베이스에 의존하는 쿼리문은 모두 수정해야 한다.
2. 데어터 베이스 모델속성을 구상한다.
질문속성 | 답변속성 | ||
subject | 질문의 제목(최대길이 200자) | question | 답변이 종속된 질문 |
content | 질문의 내용 | content | 답변의 내용 |
creat_date | 질문을 작성한 일시 | creat_date | 답변을 제작한 일시 |
3. pybo / models.py 에 질문과 답변 모델 작성하기
from django.db import models
class Question(models.Model):
subject = models.CharFiled(max_lenth=200)
content = models.TextFiled()
create_date = models.DateTimeFiled()
class Answer(models.Model):
question = models.ForeignKey(Question, on_delete=models.CASCADE)
content = models.TextField()
create_date = models.DateTimeFiled()
4. config / setting.py 에 앱을 등록시킨다.
/*-------- 생략 ---------*/
INSTALLED_APPS = [
'pybo.apps.PyboConfig',
'django.contrib.admin',
'django.contrib.auth',
/*-------- 생략 ---------*/
]
/*-------- 생략 ---------*/
5. migrate로 앱관련 테이블 생성하기
(venv)prompt> python manage.py makemigrations
(venv)prompt> python manage.py migrate
- DB Browser for SQL로 데이터베이스 내부를 보면 pybo_question, pybo_answer 테이블을 확인 할 수 있다.
위 문서는 이지스퍼블리싱에서 출간한 박응용님의 "점프투 장고"를 제가 공부하면서 요약한 내용입니다.
게시한 내용은 공부를 하면서 저만 알아볼 수 있게 요약한 부분들도 많으므로 부족한 내용은
직접 책을 구입하셔서 보시면 좋을 것 같습니다.
'Study > django' 카테고리의 다른 글
django - QuestionTitleList (0) | 2021.09.25 |
---|---|
django - Admin (0) | 2021.09.25 |
django - DataControl (0) | 2021.09.25 |
django - Create app (0) | 2021.09.24 |
django - Setting (0) | 2021.09.24 |