我正在从 djangobook.com 学习 django
作为练习,我正在尝试HttpRequest.META
使用模板以表格的形式打印所有字典。
views.py包含
# Create your views here.
from django.http import HttpResponse
from django.shortcuts import render
def http_headers(request):
return render(request,'headers.html',{'headers':request.META})
headers.html <-- 模板
<html><body><table border="1">
{% for k in headers.keys %}
<tr><td> {{ k }} </td><td>{{ headers.k }}</td></tr>
{% endfor %}
</table></body></html>
输出:
<html><body><table border="1">
<tr><td> TMP </td><td></td></tr>
<tr><td> COMPUTERNAME </td><td></td></tr>
<tr><td> wsgi.multiprocess </td><td></td></tr>
<tr><td> RUN_MAIN </td><td></td></tr>
<tr><td> HTTP_COOKIE </td><td></td></tr>
...
...
问题:
为什么无法访问{{headers.k}}
?
djangobook.com 说:
点查找可以总结如下:当模板系统在变量名中遇到点时,它会尝试以下查找,顺序如下:
Dictionary lookup (e.g., foo["bar"]) Attribute lookup (e.g., foo.bar) Method call (e.g., foo.bar()) List-index lookup (e.g., foo[2])
因此,headers.k
必须首先匹配字典查找,因为标题是字典。正确的?
我错过了什么