2011-04-28 80 views
1

我无法理解views.py文件中的内嵌HTML转换,以及将HTML从视图文件中分离出来并放入模板文件夹中。例如,在从Django的书的例子 - http://djangobook.com/en/2.0/chapter07/将视图中的HTML转换为Django中的模板

的Views.py文件具有下面的代码:

def display_meta(request): 
    values=request.META.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>' % '\n'.join(html)) 

我怎么会分开处理成一个视图和模板文件。这是我现在有(但它不工作 - 也就是说,它呈现一个空白页) -

(在views.py)

def display_meta(request): 
     items = request.META.items().sort() 
     return render_to_response('display_meta.html', {'items':items}) 

(模板/ display_meta.html)

<html> 
<head></head> 
<body> 
<table> 
{% for x, y in items %} 
<tr> 
    <td> 
     {{x}} 
    </td> 
    <td> 
     {{y}} 
    </td> 
</tr> 
{% endfor %} 
</table> 
</body> 
</html> 

谢谢。

+0

没有人再看他们的错误日志吗? – 2011-04-28 01:21:03

+0

它呈现一个空白页面。 Django没有发现“错误”。 – David542 2011-04-28 01:22:18

+0

请不要评论你的问题。请**更新**您的问题,以准确定义正在发生的事情以及您不喜欢的事情。 – 2011-04-28 09:56:39

回答

4

这是因为这是代码行:

request.META.items().sort() 

将返回无。如果您删除.sort(),您将看到数据。

如果你想知道为什么,它因为它排序字典本身,并且不返回任何内容。为了解决这个问题:

items = request.META.items() 
items.sort() 
return render_to_response('display_meta.html', {'items':items}) 
+0

我在添加,而你正在评论;) – Nix 2011-04-28 01:32:41

+0

Teriffic,谢谢。 – David542 2011-04-28 05:15:21