티스토리 뷰

HttpRequest

• 클라이언트부터의 모든 요청 내용을 담고 있으며, 매 요청 시마다 뷰 함 수의 첫번째 인자로 전달 

(중요) 모든 뷰함수는 첫번째 인자로 request를 받는다 FBV, CBV=self.reqyest

HttpRequest objects 에서 폼 처리 관련 속성

- request.method : 요청의 종류, 무조건 "GET" 또는 "POST"  (참고) 무조건 대문자!!

- request.GET : GET인자, QueryDict 타입 (GET요청/POST요청 시)

- request.POST : POST인자, QueryDict 타입 (POST요청 시)

- request.FILES : POST업로드 파일 인자, MultiValueDict 타입


MultiValueDict <- Dict 상속

http://localhost:8888/say_hello/?name=Tom&name=JJini&name=photo 웹에서는 네임중복이 됨으로 장고에서 지원해야한다.

동일 key의 다수 value를 지원하는 사전

URL의 Query String은 같은 Key로서 다수 Value지정을 지원

- name=Tom&name=Steve&name=Tomi


QueryDict <- MultiValueDict을 상속 

수정 불가능한 (Immutable) MultiValueDict


MultiValueDict(dict) 

# 동일 key의 다수 value를 지원하는 사전

from django.utils.datastructures import MultiValueDict

d = MultiValueDict({'name': ['Adrian', 'Simon'], 'position': ['Developer']})

d['name']

출력 >'Simon'

d.getlist('name')

출력 >['Adrian', 'Simon']

d.getlist('doesnotexist') 

출력 > []

d['name'] = 'changed'

d

출력 > <MultiValueDict: {'name': ['changed'], 'position': ['Developer']}> 


QueryDict(MultiValueDict)

# 수정 불가능한 (Immutable) MultiValueDict

# 아래 코드는 Django Shell을 통해서 실행이 가능

from django.http import QueryDict

qd = QueryDict('name=Adrian&name=Simon&position=Developer', encoding='utf8')

qd['name']

출력 > 'Simon'

qd.getlist('name')

출력 > ['Adrian', 'Simon']

qd['name'] = 'changed'  # 수정 불가능

출력 > AttributeError: This QueryDict instance is immutable 


HttpResponse

response # HttpResponse 인스턴스인데, render를 통해서, 좀더 쉽게 템플릿을 통한 렌더링

뷰 함수의 리턴값으로서 HttpResponse의 인스턴스를 기대

- Feat. Middleware

여러 Helper 함수를 통해 손쉽게 HttpResponse 인스턴스 생성

(django.shortcuts.render, django.shortcuts.redirect,django.http.JsonResponse 등)




"""본 내용은 AskDjango VOD, "장고 차근차근 시작하기" 강의내용을 참고하여 작성했습니다.(https://nomade.kr/)"""

반응형

'Python > * Django' 카테고리의 다른 글

19. ModelForm  (0) 2017.12.20
18. Form  (0) 2017.12.19
16. CSRF(Cross-Site Request Forgery)  (0) 2017.12.15
15. HTML Form  (0) 2017.12.15
14. Django 템플릿 엔진 - 템플릿 필터  (0) 2017.12.15
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/11   »
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
글 보관함