Django 單元測試 + 新增user添加權(quán)限 - 簡書
文件上傳
DRF里面有APIClient可以很好地實現(xiàn)驗證,然而在文件上傳驗證的時候出現(xiàn)request.FILE.get('file') 找不到key值的情況版姑。
查看網(wǎng)上代碼后 發(fā)現(xiàn)用Django的Client()能夠避免這種情況迟郎, 然而本項目是需要驗證的Client(),所以最后選擇采用添加headers的方式來解決炒嘲。
注意 表頭驗證一定要全部大寫 必須加上HTTP_7蛲埂Z宄帧! 此外表頭寫在client.post()里面也可鸽扁!
Json loads
本來想采用client+token的方式 然而json.loads(request.body.decode("utf8"))報錯镶骗, print request.body后發(fā)現(xiàn)一大堆\r\n等等
應(yīng)該是沒有成功轉(zhuǎn)成Json鼎姊, 之后嘗試使用APIClient.post成功解決這個問題!N坑凇唤衫!
然而:
在使用APIclient.get()的時候又出現(xiàn)了佳励,Json loads報錯的情況蛆挫, 輸出的request.GET如下圖
于是乎我上網(wǎng)查了如何將data轉(zhuǎn)化為Json, 結(jié)果使用json.dumps(data)后urlencode報錯如下
最后發(fā)現(xiàn)只要json.dumps局部就好了……我太南了……
轉(zhuǎn)化字典
Python中用eval將字符串轉(zhuǎn)換為字典時候出錯:NameError: name ‘null’ is not defined的解決方法_Python_Mr.Yan的專欄-CSDN博客
將null替換后還是回報錯
所以最后采用json.loads()進(jìn)行轉(zhuǎn)化