本文鏈接:https://blog.csdn.net/xun527/article/details/87777576
request.POST是用來接收前端傳過來的數據
一、request.POST.get('sth')與 request.POST ['sth'] - 區別
request.POST['sth']KeyError如果'sth'不在,將提出異常request.POST。
request.POST.get('sth')將返回None如果'sth'不在request.POST。
此外,.get允許您提供默認值的附加參數,如果該鍵不在字典中,則返回該參數。
例如,request.POST.get('sth', 'mydefaultvalue')
這是任何python字典的行為,並不是特定的request.POST。
二、這兩個片段在功能上是相同的:
第一個片段:
try:
x = request.POST['sth']
except KeyError:
x = -1
第二個片段:
x = request.POST.get('sth', -1)
如果數值不存在的話,我們可以指定顯示的默認值:
x = request.POST.get('sth', 'default_value')
這里我們可以拿字典對象來進行理解:
list_test = {'a': 1, 'b': 2}
list_test.get('a') # 得到結果1
list_test.get('c') # 得到結果none
list_test.get('c', 3) # 得到設定的默認值3
list_test['b'] # 得到結果 2
list_test['c'] # 返回一個Keyvalue 錯誤類型
三:正常字典訪問和使用.get()訪問它的主要區別:
使用類似request.POST['sth']意願的東西 會出現一個關鍵錯誤,如果不存在''sth'。但是使用get()方法字典也會為您提供更好的錯誤處理
request.POST.get('sth')
將返回沒有鍵是'sth不存在',並且通過給第二個參數get()將返回它作為默認值。
data = request.POST.get('sth','my_default_value')
如果'sth'鍵不存在,則數據中的值將為my_default_value。這是使用get()方法優於普通字典訪問的優勢。
參考:https://stackoverflow.com/questions/12518517/request-post-getsth-vs-request-poststh-difference