점프 투 장고(여기)를 정리한 포스트입니다.
- SQLite를 데이터베이스로 사용한다
1 | python manage.py migrate |
migrate명령어를 사용하여 admin, auth, contenttypes, sessions 앱들이 사용하는 테이블들이 생성된다
모델 작성하기
models.py
1 | class Question(models.Model): |
- Question 모델과 Answer 모델을 구현한다
- Answer 모델은 질문에 대한 답변에 해당되므로 Question 모델을 속성으로 가져가야 한다
- 기존 모델을 속성으로 연결하려면
Foreignkey를 사용해야 한다 on_delete=models.CASCADE는 연관된 질문이 삭제될 경우 답변도 같이 삭제된다
파이보 앱 등록
1 | INSTALLED_APPS = [ |
settings.py파일에서 INSTALLED_APPS에pybo.apps.PyboConfig를 추가해 테이블을 생성한다- 모델이 새로 추가되거나 변경되면
makemigrations명령을 수행한 수migrate명령을 수행해야 한다
1 |
|
- migrate는 shell 파일로 한번에 실행하게 해줄수 있다
모델 사용하기
- 장고 셸을 사용해 모델을 사용해 본다
1 | /DjangoProject/Django_practice ❯ python3 manage.py shell |
- 위 명령어를 이용해서 장고 셸을 실행시킨다
- 장고 셸을 종료하려면
Ctrl+z를 이용해 종료할 수 있다
Question 생성
1 | >>> from pybo.models import Question, Answer |
- Question, Answer 모델은 장고 셸에서 import 하여 사용할 수 있다
1 | >>> q = Question(subject='', content='', create_date=timezone.now()) |
models.py에서 정의한 모델들의 속성을 입력해서 데이터를 저장한다- 위와 같은 명령어로 데이터가 생성되면 데이터에 대한 id 값이 생성된다
>>> q.id명령어로 알 수 있다
Question 조회
1 | >>> Question.objects.all() |
- 위와 같은 명령어로 Question 모델을 조회할 수 있다
1 | class Question(models.Model): |
- Question 모델에
__str__메서드를 추가하면 id값 대신 제목을 표시할 수 있다
Question 수정
1 | >>> q = Question.objects.get(id=2) |
q를 id 값이 2인 데이터로 선언하고 id 값이 2인 데이터의subject의 내용을 수정한다- 수정한 후에는
q.save()를 이용해 꼭 저장을 해야한다
Question 삭제
1 | >>> q = Question.objects.get(id=1) |
q.delete()로 저장된 데이터를 삭제할 수 있다