Request对象和Response对象

from rest_framework.request import Request
# 继承了APIView的视图类(自定义的CBV)中的request都不是django原生的request了,原生的request在新的request._request中
# 新的request用法和原生的request是一样的,因为Request类重写了__getattr__方法
def __getattr__(self, attr):
    """
        If an attribute does not exist on this instance, then we also attempt
        to proxy it to the underlying HttpRequest object.
        """
    try:
        return getattr(self._request, attr)
    except AttributeError:
        return self.__getattribute__(attr)
    

request.data #其实是个方法,被@property装饰成了属性,它的返回值是一个字典,post请求不管使用三种编码方式中的哪一种,传过来的数据,都在request.data 里面


# get请求携带的数据可以通过以下方式获取
print(request.GET)
print(request.query_params)
# Request类中的query_params方法
@property
def query_params(self):
    """
        More semantically correct name for request.GET.
        """
    return self._request.GET
class Response(SimpleTemplateResponse):
	...	
	def __init__(self, data=None, status=None,
                 template_name=None, headers=None,
                 exception=False, content_type=None):
        '''
        之前用的时候,只给data参数传了值
        template_name 在用浏览器做测试的时候,返回的html页面,支持自定义,一般不会去改它
        content_type是返回的编码格式,content_type='application/json
        响应头:可以往里面放东西,headers={'token':'xxx'}
        '''
上一篇:101. 对称二叉树


下一篇:element el-input 去掉边框