淺談Django中的QueryDict元素為數(shù)組的坑
一般在Django的視圖函數(shù)中使用request.POST來獲取請求體,request.POST是QueryDict類,通常作為dict來使用。
正常如下圖

但是昨天在使用的時候遇到一個錯誤,提示從QueryDict里面pop出來的值類型為list。
一臉懵逼
在命令行敲代碼,發(fā)現(xiàn)了這個坑, 如下圖

可以看到,pop出來的值被放在的一個list里面。關(guān)鍵這個不同版本之間,行為還有所不同,就是因?yàn)樵陂_發(fā)機(jī)器上一切正常,到了測試服務(wù)器就出問題才被發(fā)現(xiàn)的。
知道了問題,解決起來也簡單,直接調(diào)用QueryDict的dict方法,返回一個字典

補(bǔ)充知識:django基礎(chǔ)知識之QueryDict對象
QueryDict對象
定義在django.http.QueryDict
request對象的屬性GET、POST都是QueryDict類型的對象
與python字典不同,QueryDict類型的對象用來處理同一個鍵帶有多個值的情況
方法get():根據(jù)鍵獲取值
只能獲取鍵的一個值
如果一個鍵同時擁有多個值,獲取最后一個值
dict.get(’鍵’,default)
或簡寫為
dict[’鍵’]
方法getlist():根據(jù)鍵獲取值
將鍵的值以列表返回,可以獲取一個鍵的多個值
dict.getlist(’鍵’,default)
以上這篇淺談Django中的QueryDict元素為數(shù)組的坑就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. Java commons-httpclient如果實(shí)現(xiàn)get及post請求2. 一文帶你徹底理解Java序列化和反序列化3. JS中6個對象數(shù)組去重的方法4. Python基于requests庫爬取網(wǎng)站信息5. vscode運(yùn)行php報錯php?not?found解決辦法6. python中文本字符處理的簡單方法記錄7. PHP laravel實(shí)現(xiàn)導(dǎo)出PDF功能8. Python使用Selenium自動進(jìn)行百度搜索的實(shí)現(xiàn)9. PHP利用curl發(fā)送HTTP請求的實(shí)例代碼10. 資深程序員:給Python軟件開發(fā)測試的25個忠告!

網(wǎng)公網(wǎng)安備