目录
介绍
视图基本就是两部分
一个是请求对象request
,request对象是在wsgi创建的 数据解析
一个是响应对象HttpResponse、render
也是wsgi创建的 按照http协议封装数据
请求对象
def index(request):
print(request.method)
return HttpResponse("OK")
获取请求数据
-
获取请求方法
request.method
-
获取请求端口
print(request.get_port())
-
获取请求路径
print(request.get_full_path())
-
获取请求IP:PORT
print(request.get_host())
-
获取完成的请求URL
print(request.get_raw_uri())
-
获取content_type
print(request.content_type)
获取请求体数据
-
获取GET请求体
当同一个键传入多个值的时候使用
getlist
就会获取全部数据list,一个键多个值使用get只会获取最后一个值
get_data = request.GET print(get_data.get) # <bound method MultiValueDict.get of <QueryDict: {'user': ['zhq', 'zhq2'], 'pwd': ['123']}>> print(get_data.get("pwd")) # 123 print(get_data.getlist("user")) # ['zhq', 'zhq2']
-
获取POST请求体
request.POST他只会获取到content_type=x-www-form-urlencoded格式的数据,request.body可以获取任意类型的body数据
print(request.POST) # 返回 <QueryDict: {'user': ['zhq', 'zhq2'], 'pwd': ['123']}> 字典 print(request.POST.getlist('user')) # ['zhq', 'zhq2'] 当同一个键传入多个值的时候使用`getlist`就会获取全部数据list,一个键多个值使用get只会获取最后一个值 print(request.POST.get('pwd')) # 123
- 获取请求的body数据
获取所有的body数据 不管content_type是什么类型 都可以获取到
print(request.body)
- 获取请求的body数据
获取请求头
print(request.META)
响应对象
响应对象主要是有三种:响应对象主要有三种形式: HttpResponse()、render()、redirect()
- 常用属性
-
content:返回的内容。
-
status:返回的HTTP响应状态码。
-
content_type:返回的数据的MIME类型,默认为 text/html 。浏览器会根据这个属性,来显示数据。如果是 text/html,
那么就会解析这个字符串,如果 text/plain ,那么就会显 示一个纯文本。 -
设置响应头: response['X-Access-Token'] = 'xxxx' 。
def index(request): res = HttpResponse(content="<h1>OK</h1>",status=200,content_type="text/plain") res["user"] = "zhq" # 自定义响应头 return res
-
JsonResponse
使用JosnResponse需要导入:from django.http import JsonResponse,常用属性和HttpResponse相同
-
序列化一个字典
from django.http import JsonResponse def index(request): book = {"title":"三国","price":299} return JsonResponse(book) # 返回json格式
-
序列化一个列表
def index(request): book = [{"title": "三国", "price": 299},{"title": "三国", "price": 299}] return JsonResponse(book,safe=False) # 将safe 设置成False 就可以序列还一个列表
render 返回一个模版
render 使用用来返回一个模版 也就是html,它还可以动态参数
redirect 重定向
标签:请求,get,request,视图,Django,content,获取,print From: https://www.cnblogs.com/py-zhq/p/16926539.html将用户的请求重定向到另外一个URL上,详情见