일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 구조체와 클래스의 공통점 및 차이점
- 프레임워크와 라이브러리의 차이
- string 메소드
- 장고란
- iOS14
- 이분그래프
- Django란
- k-eta
- 2557
- 엑셀
- double ended queue
- 자료구조
- string 함수
- 시간복잡도
- scanf
- c++
- 입출력 패턴
- 알고리즘 공부방법
- UI한글변경
- 백준
- Django Nodejs 차이점
- 연결요소
- getline
- vscode
- Django의 편의성
- 표준 입출력
- 매크로
- 입/출력
- EOF
- correlation coefficient
- Today
- Total
Storage Gonie
22. (app2) Django Model 생성(foreign key로 연결된 2개의 모델 만들기) 본문
22. (app2) Django Model 생성(foreign key로 연결된 2개의 모델 만들기)
Storage Gonie 2019. 2. 17. 17:11주제 : foreign key로 연결된 2개의 모델 만들기
ORM이란
- Object Relational Mapping의 줄임말.
- 오브젝트와 데이터베이스를 연결하여 데이터 베이스의 CRUD를 쉽게 할 수 있게 함
1. model.py에서 아래의 코드를 입력하여 Question, Choice 모델을 만들어준다.
- primary key 는 장고가 자동으로 설정해주므로 따로 설정할 필요가 없다. 물론 수동으로 관리할 수 있지만 보통은 그럴 필요가 없다.
- 아래와 같이 외래키를 설정해줫을 때 일어나는 상황설명 : Question에서 짜장?짬뽕? 라인을 지워버리는 경우 Choice에서 fk가 2인 짜장, 짬뽐, 탕슉이 모두 같이 날아간다.
from django.db import models
# Create your models here.
class Question(models.Model):
question_text = models.CharField(max_length = 200)
pub_date = models.DateTimeField('date published') # ( ) 에 들어간 텍스트는 그냥 주석이다.
class Choice(models.Model):
# Foeign Key 설정, on_delete 설정 : 참조한 키가 삭제되면 그 키와 관련된 데이터를 같이 삭제해주세요
question = models.ForeignKey(Question, on_delete=models.CASCADE)
choice_text = models.CharField(max_length = 200)
votes = models.IntegerField(default = 0)
2. 콘솔에서 다음을 실행하여 모델을 생성하는 쿼리문을 생성한다.
- "python manage.py makemigrations"
- 앱폴더 아래에 003_~~~.py 파일이 생성되었고, Choice, Question 모델이 생성되었다는 문구를 확인할 수 있음.
- 만약 변경된 내용이 없다고 뜨는 경우 진짜 변경된 코드가 없어서 그럴 수 있지만 그 경우가 아닌경우 settings.py에 앱을 등록했는지 확인해야함.
3. 생성되는 쿼리문(SQL문) 확인방법
- "python manage.py sqlmigrate 앱이름 숫자"
ex) 숫자에는 생성되었다고 하는 파일의 맨 앞의 숫자를 입력해주면 된다.
위의 경우 python manage.py sqlmigrate polls 0003
4. 실제 반영
- "python manage.py migrate"
'웹개발 > Django 웹서비스 개발(인프런)' 카테고리의 다른 글
24. (app2) Django Shell로 Model 조작하기2 (0) | 2019.02.17 |
---|---|
23. (app2) Django Shell로 Model 조작하기1 (0) | 2019.02.17 |
21. (app2) 셋업 및 urls.py와 views.py 수정( app2, polls 프로젝트 생성 및 Including another URLconf) (0) | 2019.02.17 |
20. python anywhere를 이용한 Django 프로젝트 배포 (0) | 2019.02.12 |
19. (app1) 앱 다듬기(버튼을 이용한 리다이렉트, 클릭한 객체의 정보를 이용해 렌더링) (0) | 2019.02.12 |