json - 如何将 DRF 响应对象的内容解码为 Python 字符串?
问题描述
我在 Django Rest Framework 中有以下路线:
from rest_framework.viewsets import ModelViewSet
from rest_framework.renderers import JSONRenderer
from rest_framework.response import Response
class MainViewset(ModelViewSet):
renderer_classes = [JSONRenderer]
authentication_classes = []
permission_classes = []
def alive(self, request):
return Response("API is Alive", 200)
我有一个调用此 API 路由的 Django 测试,需要 JSON 字符串:
def test_base_route(self):
c = Client()
response = c.get('/budget/alive')
self.assertTrue(response.status_code == 200)
self.assertEqual(response.content.decode("UTF-8"), "API is Alive")
但是,我收到以下错误:
def test_base_route(self):
c = Client()
response = c.get('/budget/alive')
self.assertTrue(response.status_code == 200)
> self.assertEqual(response.content.decode("UTF-8"), "API is Alive")
E AssertionError: '"API is Alive"' != 'API is Alive'
E - "API is Alive"
E ? - -
E + API is Alive
我发现这很奇怪,因为我解码了字符串。我知道修剪引号是一件简单的事情,但是在发送 JSON 时将单个字符串序列化为响应并将其返回到 DRF 中的响应内容中的正确方法是什么?
解决方案
您可以.data
在这种情况下使用:
self.assertEqual(response.data, "API is Alive")
推荐阅读
- java - 如何从旧版本的 spring mvc 3.0.5 使用/集成 spring security
- xamarin - 适用于 Xamarin 表单的 TokBox OpenTok SDK
- python - 我们如何才能获得存储在 python 对象中的所有内容(或几乎所有内容)的明确列表?
- javascript - npm install github 给出了意外的标识符错误
- javascript - 用 event.stopPropagation() 解决问题
- javascript - 如何缩放条形图列以正确且按比例地放入其容器中?
- swift - iOS 应用上的 Readium 和 Sony URMS 集成
- java - 没有从 jsp 页面得到正确的响应
- javascript - 从另一个 javascript 推送角度图表数据
- python - 如何防止转义字符改变随机生成的 Python 字符串的输出?