二.httpRequest-httpResponse-JsonResponse对象

 一.HttpRequest对象

HttpRequest在django.http这个模块中
它是用django创建
文档https://docs.djangoproject.com/en/1.11/ref/request-response/#httprequest-objects 
属性:
HttpRequest.body HttpRequest.path 不带参数的请求路径 HttpRequest.method HttpRequest.encoding HttpRequest.GET HttpRequest.POST HttpRequest.META
HttpRequest对象——方法: HttpRequest.get_host() 获取主机名 HttpRequest.get_port() HttpRequest.get_full_path() 获取完整请求路径 HttpRequest.is_secure() 是否是安全的 HttpRequest.is_ajax() 是否是ajax

属性查看效果:

views.py:

from django.http import HttpResponse
def index(request):
print(request.scheme)
print(request.method)
print(request.path)
print(request.body)
print(request.encoding)
print(request.POST)
print(request.META)
print(request.GET)
return HttpResponse("Hello world !!!")

 刷新浏览器后终端效果如下:

 方法查看效果:

def index(request):
print(request.get_host())
print(request.get_port())
print(request.get_full_path())
print(request.build_absolute_uri())
print(request.is_secure())
print(request.is_ajax())
print(request.readline())
print(request.__iter__())
return HttpResponse("Hello world !!!")

 刷新浏览器后终端效果如下:

 二.HttpResponse对象

HttpResponse在django.http这个模块中
传递一个字符串作为页面的内容到 HttpResponse 构造函数中即可
>>> from django.http import HttpResponse  导入模块
>>> response = HttpResponse("Here's the text of the Web page.") 实例化模块
>>> response = HttpResponse("Text only, please.", content_type="text/plain")
https://docs.djangoproject.com/en/1.11/ref/requestresponse/#httpresponse-objects
 
HttpResponse对象——属性:
属性:
HttpResponse.content  返回普通的字符串
HttpResponse.charset  返回的字符集
HttpResponse.status_code  返回的状态码
HttpResponse.reason_phrase
方法:
HttpResponse.__init__(content=”, content_type=None, status=200, reason=None, charset=None)

(1)views.py: httpresponse返回字符串

def index(request):
res = HttpResponse()
res.content = "你好"
res.status_code = 300
return res

刷新浏览器后效果如下:

(2)views.py: httpresponse返回数据类型要特殊处理,因为它默认接收的是字符串

from django.http import HttpResponse
import json
def index(request):
data = ["a","b","c"] #列表
return HttpResponse(json.dumps(data)) #返回列表

 其实上述效果可直接用JsonResponse对象解决,不用再用json.dumps序列化

三.JsonResponse对象

from django.http import HttpResponse,JsonResponse
def index(request):
data = ["a","b","c"] #列表
return JsonResponse(data,safe=False) #data是列表则safe参数要设置false,是字典则true,默认就是true所以不用设置

原文地址:https://www.cnblogs.com/dbslinux/p/13019274.html