重写views.py而不使用locals()

sup*_*er9 0 python django views

我有以下模板:

<!DOCTYPE HTML PUBLIC "=//W3C//DTD HTML 4.01//EN">
<html land="en">
<head>
    <title>Some Meta Data</title>
</head>
<body>
    <ul>
        {% for key,values in meta %}
        <li> {{ key }}, {{ values }} </li>
        {% endfor %}
    </ul>
</body>

</html>
Run Code Online (Sandbox Code Playgroud)

和相应的views.py:

def display_meta(request):
    meta = request.META.items()
    metadata = []
    for k,v in meta:
        key = k
        values = v 
    return render_to_response('meta.html', locals())
Run Code Online (Sandbox Code Playgroud)

如何重新编写上面的函数,使其不使用locals()

std*_*err 5

您的观点可以是:

def display_meta(request):
    meta = request.META.items()
    return render_to_response('meta.html', {"meta": meta})
Run Code Online (Sandbox Code Playgroud)

由于您必须迭代元数据以生成模板,因此您不必在视图中执行此操作.render_to_response的第二个参数也可以是要添加到模板上下文中的键的字典.