1、request.META里包含了哪些数据?
request.META 是一个Python字典,包含了所有本次HTTP请求的Header信息,比如用户IP地址和用户Agent(通常是浏览器的名称和版本号)。 注意,Header信息的完整列表取决于用户所发送的Header信息和服务器端设置的Header信息。
因为 request.META 是一个普通的Python字典,因此当你试图访问一个不存在的键时,会触发一个KeyError异常。
你应该用 try/except 语句,或者用Python字典的 get() 方法来处理这些“可能不存在的键”。(Python 字典(Dictionary) get() 函数返回指定键的值,如果值不在字典中返回默认值。)
比如:
ua
=
request.META.get(
'HTTP_USER_AGENT'
,
'unknown'
)
或者:
try:
ua = request.META['HTTP_USER_AGENT']
except KeyError:
ua = 'unknown'
那么 request.META 里面还有什么有用的数据呢?动手写一个简单的view函数来显示 request.META 的所有数据,这样你就知道里面有什么了。
def display_meta(request): values = request.META.items() (Python 字典(Dictionary) items() 函数以列表返回可遍历的(键, 值) 元组数组。)
values.sort() html = [] for k, v in values: html.append('<tr><td>%s</td><td>%s</td></tr>' % (k, v)) return HttpResponse('<table>%s</table>' % ' '.join(html))