일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Bellman-Ford
- Kruskal
- 종합설계
- 소프트웨어공학
- 그리디알고리즘
- 코드트리
- Planned
- 알고리즘
- 최소스패닝트리
- 백준
- B대면노래방
- SQL
- 백트래킹
- codetree
- 동적계획법
- MyPlaylist
- programmers
- 마라마라빔
- 장고
- 데이터베이스
- 실습
- django
- 파이썬
- DP
- 프로그래머스
- DFS
- BFS
- 함밥
- minimum spanning tree
- 모각코
- Today
- Total
Leta Learns
[점프 투 장고] 2-02 데이터를 관리하는 모델 본문
admin, auth, content types, sessions 앱은 장고 프로젝트를 만들 때 기본으로 생성되어 설치.
BASE_DIR : 프로젝트 디렉터리
python manage.py makemigrations : 테이블 작업 파일 생성
python manage.py migrate : 실제 테이블 생성 (ok 짱 많이)
models.py
클래스로 생성.
어떤 모델이 다른 모델을 속성으로 가지면 ForeignKey 이용 (다른 모델과의 연결을 의미)
on_delete=models.CASCADE : 답변에 연결된 질문이 삭제되면 답변도 함께 삭제 (Answer 모델)
모델 만든 후 settings.py 에서 앱 추가. ( INSTALLED_APPS = )
앱 추가 안 하면 -> 장고가 앱 인식 X -> 데이터베이스 관련 작업 X
모델은 앱에 종속되어 있으므로 반드시 장고에 앱을 등록해야 함.
장고 셸 실행 : python manage.py shell
Question, Answer 모델 import한 후 모델 데이터 만들고 (q = Question ~ ) q.save()를 통해 모델 데이터를 데이터베이스에 저장.
id : 데이터의 유일한 값. PK (primary key)
Question 모델 데이터 모두 조회 : Question.objects.all()
모델 데이터 조회 시 속성 값 보여주기 : ex) def __str__(self):
return self.subject
조건으로 Question 모델 데이터 조회 : Question.objects.filter(id=1)
-> 조건에 맞지 않는 데이터를 조회하면 빈 QuerySet 반환
Question 모델 데이터 하나만 조회 : Question.objects.get(id=1)
-> 조건에 맞지 않는 데이터를 조회하면 오류 발생
제목의 일부를 이용하여 데이터 조회 : Question.objects.filter(subject__contains='장고') 언더스코어 2개!!
데이터 수정 방법 : 수정할 데이터 조회 -> 수정 -> .save()
데이터 삭제 방법 : 삭제할 데이터 조회 -> .delete()
연결된 데이터로 조회하기 : a.question #Answer모델 데이터에 Question 모델 데이터 연결되어 있음. 링크 참고)
q.answer_set.all() #질문을 통해 답변 찾기
질문 1개에 답변 1개 이상이 달릴 수 있다. -> 질문에 달린 답변은 q.answer_set으로 조회
답변 1개에는 질문 1개만 연결. -> a.question
연결모델명_set
참고 : wikidocs 점프 투 장고 https://wikidocs.net/70650
'Django' 카테고리의 다른 글
[점프 투 장고] 2-10 질문 등록 기능 만들기 (0) | 2021.07.03 |
---|---|
[점프 투 장고] 2-05 ~ 2-07 (0) | 2021.07.03 |
[점프 투 장고] 2-04 질문 목록과 질문 상세 기능 구현하기 (0) | 2021.07.01 |
[점프 투 장고] 2-03 개발 편의를 제공하는 장고 Admin (0) | 2021.07.01 |
[점프 투 장고] 2-01 주소와 화면을 연결하는 URL과 뷰 (0) | 2021.07.01 |