当前位置:知识百科 > 正文
Django_request.META包含的数据及获取用户访问IP方法
request.META 是一个Python字典,包含了所有本次HTTP请求的Header信息,比如用户IP地址和用户Agent(通常是浏览器的名称和版本号). 注意,Header信息的完整列表取决于用户所发送的Header信息和服务器端设置的Header信息.?
因为 request.META 是一个普通的Python字典,所以呢当你试图访问一个不存在的键时,会触发一个KeyError异常. (HTTP header信息是由用户的浏览器所提交的、不应该给予信任的"额外"数据,所以呢你总是应该好好设计你的应用以便当一个特定的Header数据不存在时,给出一个优雅的回应.)你应该用 try/except 语句,或者用Python字典的 get() 方法来处理这些"可能不存在的键".
我们可以写一个函数来获取所有的字典项:
def ergodic_meta(request): tuple_dict = request.META.items() #将字典转换成可遍历的元组. tuple_dict.sort() #对元组进行排序,方便查看. html = [] for k, v in tuple_dict: html.append('' % (k, v)) return HttpResponse(' %s %s %s
' % '\n'.join(html))
使用django来获取用户访问的IP地址:
如果用户是正常情况下其字典的KEY键名为''REMOTE_ADDR'':
request.META['REMOTE_ADDR']
if 'HTTP_X_FORWARDED_FOR' in request.META: ip = request.META.get('HTTP_X_FORWARDED_FOR') else: ip = request.META.get('REMOTE_ADDR')
以上就是日讯小常识小编为大家整理的Django_request.META包含的数据及获取用户访问IP方法相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!
