4. Django
Django의 MTV 패턴
• Template
• View 역할
• 사용자의 화면에 보
이는 부분
• View
• Controller 역할
• 사용자의 요청을 처
리하여 응답해주는
부분
• Model
• Model 역할
• 서버와 DB를 연결해
주는 부분
5. Model
• DB에 접속하여 data를 조회(select), 입력(insert), 수정
(update), 삭제(delete)하는 작업을 하는 모듈(model.py)
• django.db.models.Model 클래스를 상속
7. Model
Field
• Field (공통 속성)
• null : db값의 null을 허용할지 (Boolean)
• blank : admin 에서 empty input value 허용할지
(Boolean)
• default : default value
• help_text : admin 에서 해당 필드 설명 text
• unique : value가 uniqu한지 (Boolean)
• TextField
• max_length : 최대 길이
• DateTimeField
• auto_now : 수정될 때
• auto_now_add : 처음 생성될 때
8. Model
Field
• ImageField
• uploaded_to : 저장경로 설정
• height_field, width_field : 높이, 너비 지정
• ForeignKey
• 첫번째 인자 : 참조될 Model이름
• on_delete : 삭제 시 동작 방식
https://docs.djangoproject.com/en/1.10/ref/models/fields/
9. Model
• Python manage.py makemigrations
• Python manage.py migrate
• 기본적인 DB 설정이 끝났으니 다음단계로 넘어갑시다
10. View
• HTTP request에 대한 처리를 하는 모듈(view.py)
• Client와의 gate(Route)로 urls.py 모듈을 사용
• 실질적인 기능이 구현 되는 곳
15. QuerySet
Select Query
• get(**kwargs)
• Parameter와 일치하는 한 개의 object 리턴
• kwargs에 unique value
• 2개이상일 경우 MultipleObjectReturned 예외 발생
• 일치 값이 없을 경우 DoesNotExist 예외 발생
• all()
• 모든 object를 리턴
• filter(** kwargs)
• Parameter와 일치하는 여러 개의 object 리턴
https://docs.djangoproject.com/en/1.10/ref/models/querysets/
16. QuerySet
Insert Query
• create(**kwargs)
• Parameter에 지정된 값으로 생성된 object를
database에 저장
• save()
• 생성된 object를 database에 저장
https://docs.djangoproject.com/en/1.10/ref/models/querysets/
21. HTTP
Request
• Client가 보낸 http 요청을 request object로 저장
• method
• GET, POST, PUT, DELETE, …
• GET
• GET 요청의 parameter들이 dict로 저장
• POST
• POST 요청의 parameter들이 dict로 저장
• FILES
• 클라이언트에서 보낸 파일 저장
22. HTTP
Response
• Server에서 Client에 data를 전송
• HttpResponse
• Client로 Response를 보내는 객체
• HttpResponseRedirect(url)
• Client로 url에 해당하는 HttpResponse를 전송
• render
• html 파일과 data를 HttpResponse 객체에 담아서 전
송
• redirect
• HttpResponseRedirect 객체에 url을 담아서 전송
23. View
기능을 추가해봅시다!
3. Photo 수정
3-1.
• 수정하기 버튼
클릭
• /photos
3-2.
• /photos/<id>
• photo객체 한
개 불러옴
3-3.
• photo db 수정
• /photos 로 redirect