Python django中JsonResponse和HttpResponse之间的区别是什么
让我们假设Python django中JsonResponse和HttpResponse之间的区别是什么,python,django,Python,Django,让我们假设result={'a':1,'b':2,'c':3} 这两者之间有区别吗: return HttpResponse(json.dumps(a)) 及 作为各州,主要区别在于 自动序列化 适当的内容类型 默认情况下更安全的输入检查 Django使用请求和响应对象通过系统传递状态。每个视图负责返回一个HttpResponse对象。使用HttpResponse,您需要首先将对象序列化为JSON 鉴于 自1.7版以来,Django使用内置的JsonResponse类进行计数,该类是Http
result={'a':1,'b':2,'c':3}
这两者之间有区别吗:
return HttpResponse(json.dumps(a))
及
作为各州,主要区别在于
- 自动序列化
- 适当的内容类型
- 默认情况下更安全的输入检查
JsonResponse
类进行计数,该类是HttpResponse
的子类。它的默认内容类型头被设置为application/json,这非常方便。它还附带一个JSON编码器,因此在返回响应对象之前不需要序列化数据
您也可以参考文档:试试这个,它会通过的
return HttpResponse(json.dumps("abcd"))
但如果你这样做了
return JsonResponse("abcd")
JsonResponse
如果您发送不可序列化的数据,将给您TypeError
(除非JsonResponse中safe=False
)
因此,在JsonResponse
而在header中JsonResponse
将设置内容类型:application/json
,另一方面HttpResponse
将设置内容类型:text/html;字符集=utf-8
- HTTPResponse
- HTTPResponse(内容=响应正文,内容类型=响应正文数据类型,状态=状态代码)
- 适用于字符串、模板
class-HttpResponse(HttpResponseBase):
- jsonresponse
- 它是HTTPResponse的一个子类,
- 适合处理json格式的数据,但不能返回模板
class-JsonResponse(HttpResponse):
- 它是HTTPResponse的一个子类,
return JsonResponse("abcd")