中坑視角,Django中QueryDict的坑

 2023-10-08 阅读 28 评论 0

摘要:QueryDict在Django中被用來存儲請求中的數據,主要是為了解決請求中一個key對應多個value的問題,具體見文檔?https://docs.djangoproject.com/en/1.9/ref/request-response/#django.http.QueryDict 如果是GET請求,則request.GET就是一個包含所有query參數

QueryDict在Django中被用來存儲請求中的數據,主要是為了解決請求中一個key對應多個value的問題,具體見文檔?https://docs.djangoproject.com/en/1.9/ref/request-response/#django.http.QueryDict


如果是GET請求,則request.GET就是一個包含所有query參數的QueryDict;

中坑視角,如果是表單提交的POST請求,request.POST就是一個包含了表單數據的QueryDict



from django.http import QueryDict
qd = QueryDict("redbull=vitamin&rain=clear")

b502390b17cda90e1fca3c156f78292af12b5dee


城中村?可見,QueryDict會把所有參數值都包進一個list中。


問題來了,我們在使用第三方服務是經常需要做數據校驗:基本上就是對除了簽名參數的所有請求參數做MD5加密,然后再與簽名參數做對比,如果兩者相等,則說明數據沒有經過篡改,是安全數據。


django連接多個數據庫。那么,回到QueryDict,我們在獲取請求參數時,如果這樣寫


AlipayService.verify_notify(**qd)


**qd解析出來并不是我們想要的

511742826b938c49621e76bdc5cc36c756cd4b97

jdbctemplate.query、

而是

3bb25b533139bdf2172147ef4281555f6b78f0b7

這樣我們的數據校驗就始終失敗。

django拿取已有數據庫的數據,

正確的方式應該是


AlipayService.verify_notify(**qd.dict())



react-query?








版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/4/131705.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息