Django 요청 매개 변수 가져 오기


84

Django 요청에 다음이 있습니다.

POST:<QueryDict: {u'section': [u'39'], u'MAINS': [u'137']}>

section및 의 값을 어떻게 얻 MAINS습니까?

if request.method == 'GET':
    qd = request.GET
elif request.method == 'POST':
    qd = request.POST

section_id = qd.__getitem__('section') or getlist....

7
매직 메서드 중 하나를 직접 호출하지 마십시오. 항상 적절한 도우미 기능을 사용하십시오.
Ignacio Vazquez-Abrams

K 디코딩 섹션있는 방법이
노후

1
이러한 개체에 대한 장고 문서를 읽기 : docs.djangoproject.com/en/dev/ref/request-response/... . 파이썬의 dict에 비해 약간의 차이가 있습니다.
스키

답변:


90

일반 사전처럼 객체 []에서 값을 추출 하는 데 사용할 수 있습니다 QueryDict.

# HTTP POST variables
request.POST['section'] # => [39]
request.POST['MAINS'] # => [137]

# HTTP GET variables
request.GET['section'] # => [39]
request.GET['MAINS'] # => [137]

# HTTP POST and HTTP GET variables (Deprecated since Django 1.7)
request.REQUEST['section'] # => [39]
request.REQUEST['MAINS'] # => [137]

9
이 모든 해가 지난 후 힌트 : request.REQUEST는
그동안

189

다음을 사용할 수도 있습니다.

request.POST.get('section','') # => [39]
request.POST.get('MAINS','') # => [137] 
request.GET.get('section','') # => [39]
request.GET.get('MAINS','') # => [137]

이를 사용하면 오류가 발생하지 않습니다. 키가있는 POST / GET 데이터가 정의되지 않은 경우 예외를 발생시키는 대신 폴백 값 (.get ()의 두 번째 인수가 사용됩니다).


1
확실히 가장 강력한 방법!
d-coder
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.