django中同經過getlist() 接收頁面form的post數組

前端中的一些東西:前端

<form action="people?action=edit" method="post">
  <input type="text" name="peoName"/>
  <input type="text" name="peoName"/>
  <input type="text" name="peoName"/>
</form>

在後臺處理中能夠經過如下代碼獲取參數:django

peoNames = request.POST.getlist('peoName',[])

獲取到的peoNames是一個數組,遍歷就能夠獲得全部元素的值,注意,request.POST的類型是QueryDict,和普通的Dict不一樣的是,若是使用request.POST.get方法,只能得到數組的最後一個元素,必須使用getlist才能獲取整個數組,以Python列表的形式返回所請求鍵的數據。 若鍵不存在則返回空列表。 它保證了必定會返回某種形式的list。數組

看下面的例子:post




code

若用戶輸入了 "John Smith" 在 your_name 框而且選擇在多選框中同時選中了 The Beatles 和 The Zombies, 而後點擊 Submit, Django的request對象將擁有:orm

>>> request.GET
{}
>>> request.POST
{'your_name': ['John Smith'], 'bands': ['beatles', 'zombies']}
>>> request.POST['your_name']
'John Smith'
>>> request.POST['bands']
'zombies'
>>> request.POST.getlist('bands')
['beatles', 'zombies']
>>> request.POST.get('your_name', 'Adrian')
'John Smith'
>>> request.POST.get('nonexistent_field', 'Nowhere Man')
'Nowhere Man'

關於django的POST常見方法對象

1.用post方法去取form表單的值

  在取值前,先得判斷是否存在這個key

  if not request.POST.has_key(strName):
      return "" 
  if request.POST[strName]:
      return request.POST[strName] 
  else:
      return ""

2.用post方法獲取[]類型的數據

  常見的,例如,每行數據前面都帶個checkbox的操做。這時候可能會選多個checkbox,傳入到後臺時,若是用request.POST[strname]獲取,那麼只能獲取到一個值。用下面的方法,能夠獲取到多值

  if not request.POST.has_key(strName):
      return "" 
  if request.POST[strName]:
      return ','.join(request.POST.getlist(strName)) 
  else:
      return ""
相關文章
相關標籤/搜索