2012-09-19 3 views
16

에서이 같은 HTML 파일의 다중 선택이있다 :액세스 다중 선택 양식 필드 플라스크

<select multiple id="mymultiselect" name="mymultiselect">   
     <option value="1">this</option>  
     <option value="2">that</option>  
     <option value="3">other thing</option> 
</select> 

I는를 통해 플라스크/파이썬에서 mymultiselect 필드를 액세스하는 경우 :

request.form['mymultiselect'] 

또는 상기 요청을 이용하여 .args.get 함수는 선택한 항목 하나만 반환합니다. 내가 지금처럼 필드의 이름에 [] 추가 내가 가진 모든 선택 항목을 얻을 것을 배웠다 :

<select multiple id="mymultiselect" name="mymultiselect[]">  
     <option value="1">this</option>  
     <option value="2">that</option>  
     <option value="3">other thing</option> 
</select> 
나는이 작동하는지 불을 지르고에서 포스트 데이터를 확인하여 볼 ​​수 있습니다

있지만, 언제든지 flask/python에서이 필드에 액세스하려고 할 때 null 또는 None으로 돌아옵니다.

"[]"이 (가) 이름 끝에있는 다중 선택 양식 필드에 어떻게 액세스합니까? 파이썬 코드에서 필드 이름에 "[]"을 추가하려고 시도했지만 작동하지 않는 것 같습니다.

답변

43

당신은 값의 목록을 얻을 수있는 getlist() function를 사용하려면 : 당신은 이 작품을 만들기 위해 이름을 []를 추가하지 필요 할

multiselect = request.form.getlist('mymultiselect') 

을; 실제로, [] 도움이되지 않습니다, 그것을 전혀 사용하지 마십시오.

+0

도움 주셔서 감사합니다. 나는 틀린 일을하고 있었고 여전히 플라스크에 새로운 것을 알았다. ... – kj4ohh

+0

이것은 나를 믿을 수 없을만큼 오래 걸렸다. - 디버깅을하는 것은 플라스크가 문제라는 것을 분명히하지 못했고, 생각한 PHP의'[] '을 발견했을 때만이다. 파이썬/플라스크를 구체적으로 검색하십시오. 'get'이 목록을 반환하지 않는 이유는 무엇입니까? 나는이 행동에서 어떤 바람직 함도 볼 수 없다. 특히 get이 첫 번째 요소를 반환하기 때문에 이상하다. 가. – OJFord

+0

그럼 요소가 하나만 있다면? 'get'은 언제 하나의 값을 반환해야합니까? API는 여기에 명시되어 있습니다. 'get'은 항상 하나의 값을 반환합니다. 'getlist'는 항상 목록을 반환합니다. –

관련 문제