목록Django (4)
오늘도 개발
장고에서 일대다 관계는 ForeignKey, 다대다 관계는 ManyToManyField로 구현할 수 있다. ForeignKey나 ManyToManyField에서 사용하는 정참조와 역참조의 개념에 대해 알아보자. 예시 모델 한 질문에는 여러 선택지가 있을 수 있지만, 한 선택지는 한 질문하고만 연결되는 일대다 관계의 모델이다. OnetoMany 관계에서는 Many쪽 테이블에 ForeignKey를 넣는다. 아래 모델에서도 Choice에 question 속성을 추가하고 ForeignKey 필드를 생성했다. # One class Question(models.Model): question_text = models.CharField(max_length=200) # Many class Choice(models.Mod..
두 모델이 다대다 관계인 경우 ManyToManyField를 사용할 수도 ForeignKey를 사용할 수도 있다. ManyToManyField를 사용지 않는 경우엔 직접 ForeignKey를 사용하여 연결 테이블을 만들어야 한다. 이 경우 views.py에서 연결 테이블을 불러와 직접 작업을 수행해야 한다. ManyToManyField를 사용하는 경우 두 모델 중 하나에만 ManyToManyField를 정의한다. 이 경우 따로 연결 테이블을 만들지 않아도 DB에 자동으로 연결 테이블(through table)이 생성된다. (연결 테이블을 커스터마이징 해야 하는 경우, Foreign키로 된 연결 테이블을 직접 만들고 ManyToManyField의 옵션 through=에 지정할 수 있다.) views.py에..
이 포스트는 'Django와 데이터베이스' 시리즈의 첫번째 글이다. Django로 데이터베이스를 다루는 과정은 다음과 같으며 각 단계를 이어지는 포스팅에서 자세히 다룰 예정이다. 1) models.py에서 클래스(모델) 정의 (click) 2) migration (click) - python3 manage.py makemigration 실행 => models.py에 기반하여 migration 코드 생성(migration은 테이블 설계도) - python3 manage.py migrate 실행 => migration 코드 실행 => DB에 테이블 생성 3) Django QuerySet API로 데이터베이스에 CRUD 실행 (click) 여기서는 우선 Django가 데이터베이스를 어떻게 조작하는지 살펴보자...
1. Django란? MVC(MTV) 패턴에 기반하여 웹사이트를 만들 수 있게 도와주는 프레임워크. 2. MVC 패턴과 MTV 패턴 MVC 패턴 MVC 패턴은 프로그램을 model, view, control(template) 모듈로 나누어 디자인하는 방법이다. 한 모듈로 모든 기능을 관리하는 것보다 유지보수가 쉽다. Model : 데이터를 저장하는 모듈 View : 데이터를 유저에게 보여주는 모듈 Controller: 사용자 입력에 따라 Model과 View를 조작하는 모듈 MTV 패턴 Django는 MVC 패턴에 기반하여 웹사이트를 만들 수 있게 도와준다. 단, Django에서는 MVC 패턴을 MTV 패턴이라고 부른다. Model : MVC의 Model 역할을 하는 모듈 (models.py) Templ..