Django框架中借助视图函数Views获取用户的请求信息

我们知道每一个视图函数都必须要有一个参数,假设参数是request,那么这个request中到底有什么信息呢?我们可以来简单查看一下他的类型,然后导入一下查看源码,看看究竟有什么。经过鳄鱼君的查看,打印的结果为:class 'django.core.handlers.wsgi.WSGIRequest',那么我们在pycharm中导入,使用CTRL + 鼠标左键 查看源码:

class WSGIRequest(HttpRequest):
    def __init__(self, environ):
        script_name = get_script_name(environ)
        # If PATH_INFO is empty (e.g. accessing the SCRIPT_NAME URL without a
        # trailing slash), operate as if '/' was requested.
        path_info = get_path_info(environ) or '/'
        self.environ = environ
        self.path_info = path_info

我们发现了用户请求的所有信息都包含在environ中,包括我们前面的request.method(用户请求的方式)、request.POST.get()、request.POST.getlist()等等了,我们在后台打印一下request.environ具体的看一下:

def login(request):
    for k,v in request.environ.items():
        print(k,v)
    return render(request,'login.html')

单独打印request.environ是一个字典,我们可以使用for循环,让排版更有助于阅读。信息比较多,我就不再展示了,其中HTTP_USER_AGENT和HTTP_COOKIE在后面会用到。这两个都应该不陌生吧,一个是UA另一个是Cookies,在爬虫的时候这两样东西应该玩的很溜了吧。

发表评论