Study/django

django - Database Setting

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