ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
![](https://img.kancloud.cn/41/e0/41e066af9a6c25a24868d9667253ec98_1241x333.jpg) ## HttpResponse对象 Django服务器接收到客户端发送过来的请求后,会将提交上来的这些数据封装成一个HttpRequest对象传给视图函数。那么视图函数在处理完相关的逻辑后,也需要返回一个响应给浏览器。而这个响应,我们必须返回HttpResponseBase或者他的子类的对象。而HttpResponse则是HttpResponseBase用得最多的子类 ### 常用属性 1.content:返回的内容。 ``` response = HttpResponse() response.content = "首页" return response ``` 2.status_code:返回的HTTP响应状态码。 3.content_type:返回的数据的MIME类型,默认为text/html。浏览器会根据这个属性,来显示数据。如果是text/html,那么就会解析这个字符串,如果text/plain,那么就会显示一个纯文本。常用的Content-Type如下: ``` text/html(默认的,html文件) text/plain(纯文本) text/css(css文件) text/javascript(js文件) multipart/form-data(文件提交) application/json(json传输) application/xml(xml文件) ``` 4.设置请求头: `response['X-Access-Token'] = 'xxxx'。` ### 常用方法 ``` 1.set_cookie:用来设置cookie信息。 2.delete_cookie:用来删除cookie信息。 3.write:HttpResponse是一个类似于文件的对象,可以用来写入数据到数据体(content)中。 ``` ## JsonResponse类 用来对象dump成json字符串,然后返回将json字符串封装成Response对象返回给浏览器。并且他的Content-Type是application/json。 ``` from django.http import JsonResponse def index(request): return JsonResponse({"username":"juran","age":18}) ``` 默认情况下JsonResponse只能对字典进行dump,如果想要对非字典的数据进行dump,那么需要给JsonResponse传递一个safe=False参数。 ``` from django.http import JsonResponse def index(request): persons = ['张三','李四','王五'] return JsonResponse(persons) ``` 以上代码会报错,应该在使用HttpResponse的时候,传入一个safe=False参数 ``` return JsonResponse(persons,safe=False,json_dumps_params={'ensure_ascii':False}) ```