Python,Django,報錯信息:TypeError: a bytes-like object is required, not 'str'


我的代碼,一個測試類:

class LoginActionTest(TestCase):
# 測試登陸動作
def setUp(self):
User.objects.create_user('admin1','admin1@qq.com','admin123456')
# 數據初始化,創建一個用戶
def test_login_action_username_password_null(self):
# 賬密為空
testdata1={'username':'','password':''}
response1=self.client.post('/login_action/',data=testdata1)
self.assertEqual(response1.status_code,200)
self.assertIn('用戶名或密碼錯誤',response1.content)

運行后就報錯如下:

然后我就上網搜這個報錯,大致就是說有轉義的問題,參考文檔:

https://stackoverflow.com/questions/45250235/flask-unit-testing-and-not-understanding-my-fix-for-typeerror-a-bytes-like-obj

https://blog.csdn.net/qq_41185868/article/details/83833262

https://www.cnblogs.com/zhaijiahui/p/6926159.html

然后我就嘗試打印出我的response1.content,發現打印內容中有一個b,如下圖。

解決思路:根據那些參考文檔說的,那我現在有兩個辦法,一個是把那個b去掉,一個是再轉一次。

如何去掉b我沒查,這里我用了第二個辦法,代碼如下:

self.assertIn('用戶名或密碼錯誤',response1.content.decode('utf-8'))

解決啦 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM