视图层之请求对象 响应对象

发布时间 2023-11-22 22:23:29作者: 朱饱饱

视图层之请求对象:

def index(request):
'''
request:django封装的对象,它的类是WSGIRequest,它里面包含了所有http请求的东西
'''
print(request)
print(type(request))
# from django.core.handlers.wsgi import WSGIRequest
#######################1 讲过的
print(request.method)
print(request.GET)
print(request.POST)

########################2 新讲的path,get_full_path,META,FIELS,body
# 自定制请求头
# 上传文件使用的编码方式是form-data,默认编码方式urlencoded
print(request.is_ajax()) # 是不是ajax请求
print(request.path) # 请求路径
print(request.get_full_path()) # 请求全路径,带数据

# print(request.body) # 请求体,二进制,如果传文件,这个报错
'''
使用form表单,默认情况下数据被转成name=lqz&password=123放到请求体中
request.POST其实是从body中取出bytes格式的,转成了字典
requet.GET其实是把路径中?后面的部分拆出来,转成了字典
'''
print(request.encoding) # 客户端向服务端传递时,使用的编码方法

print(request.META) # 重点,字典,一堆东西,请求用户的ip地址,请求头中数据,用户自定制请求头的数据
'''
把请求头的key值部分统一加HTTP_ 并且全部转成大写
'''
print(request.META['REMOTE_ADDR']) # 客户端的ip地址
print(request.FILES) # 客户端上传的文件

 

########################3 暂时不用关注(后面会讲)
print(request.COOKIES) # 空字典
print(request.session) # session对象
print(request.user) # 匿名用户
return HttpResponse('ok')

 

 

响应对象:

### 重点:JsonResponse的使用(看源码)

def index(request):
# 三件套
# return HttpResponse('ok')
# return render(request,'index.html',context={'name':'lqz','age':18})
# return redirect('/home') # 重定向自己的地址,重定向第三方地址,经常跟反向解析一起使用

# 向客户端返回json格式数据
# import json
# res=json.dumps({'name':'刘清政','age':18},ensure_ascii=False)
# return HttpResponse(res)
# django内置提供的JsonResponse
# 本质还是HttpResponse

# ensure_ascii
# return JsonResponse({'name':'刘清政','age':18},json_dumps_params={'ensure_ascii':False})
# safe,转换除字典以外的格式,需要safe=False
return JsonResponse([11,12,13,'lqz',[1,2,3],{'name':'lqz','age':19}],safe=False)