1. request.GET

 

request.GET은 http request의 정보를 dictionary 데이터로 받는 기능이다.

 

topic = request.GET.get("topic",None)

위의 코드를 살펴보면 request에 담겨있는 "topic"이라는 내용을 가져오는 것이다. 뒤에 None은 "topic"이라는 정보가 없으면 None을 가져온다는 의미이다. (오류 방지)

 

 

2. request.META

 

request.META는 사용자의 IP 주소와 사용자 Agent(일반적으로 웹 브라우저의 이름과 버전)를 포함해 지정된 요청에 대해 사용할 수 있는 모든 HTTP 헤더가 들어있는 파이썬 딕셔너리다.

 

  • request.META는 기본 파이썬 딕셔너리이므로 존재하지 않는 키에 접근하면 KeyError 예외 발생.
  • 헤더는 외부 데이터이므로 신뢰할 수 없고, 특정 헤더가 비어있거나 존재하지 않으면 정상적으로 동작하지 않도록 해야한다.
  • 정의되지 않는 키의 대소 문자를 처리하려면 try/except 나 get() 메소드 사용

 

1) 안좋은 예시

def ua_display_bad(request):
    ua = request.META['HTTP_USER_AGENT']  # Might raise KeyError!
    return HttpResponse("Your browser is %s" % ua)

 

2) 좋은 예시

def ua_display_good1(request):
    try:
        ua = request.META['HTTP_USER_AGENT']
    except KeyError:
        ua = 'unknown'
    return HttpResponse("Your browser is %s" % ua)

 

3) 좋은 예시

def ua_display_good2(request):
    ua = request.META.get('HTTP_USER_AGENT', 'unknown')
    return HttpResponse("Your browser is %s" % ua)

 

출처 : https://yonghyunlee.gitlab.io/python/django-master-6/

 

 

3. requests

django에서 POST나 GET을 사용하는 requests라는 모듈이 있다. 

 

https://docs.python-requests.org/en/master/user/quickstart/

 

'Back-End > Django' 카테고리의 다른 글

Wagtail Django_extensions, ipython  (0) 2021.11.19
Django Signals  (0) 2021.10.22
Django ORM  (0) 2021.10.21
Django iamport 적용하기  (0) 2021.10.06
Django Bulma 적용 방법  (0) 2021.08.24

+ Recent posts