如何在python / django中打印查询结果

时间:2016-09-20 17:55:24

标签: php python django cakephp pprint

我来自CakePHP,刚开始玩Django框架。在CakePHP中,我习惯使用pr()直接打印出所有返回的数组到网页。例如:

  • 一个控制器向View发出一个$ result,我使用pr($ result),它会在网页上打印出所有内容,所以我知道如何通过我的View浏览$ result。
  • 向Controller发送一个$ $请求表单,我使用pr($ request)查看在Controller中处理它之前发送的内容。在我点击提交表单后,$ request的内容将立即显示在网页上。

我想知道我是否可以在django中做同样的事情,而不是去shell并尝试pprint(或者我可以只使用pprint打印到网络上???) 这是我正在谈论的一个非常简单的例子: 的 APP_NAME / views.py:

def detail(request, soc_id):
    soc = get_object_or_404(Soc, pk=soc_id)
    return render(request, 'socs/detail.html', {'soc': soc})

我怎样才能清楚地看到“soc”中的内容。在cakephp中,我可以直接在那里pr($ soc),它将显示在detail.html页面上。

我试过这个并没有用(我确定这是基本的,但我只是新手)

import pprint
def detail(request, soc_id):
    soc = get_object_or_404(Soc, pk=soc_id)
    pprint.pprint(soc)
    return render(request, 'socs/detail.html', {'soc': soc})

我花了两天时间做研究,但我找不到答案。我希望你们中的一个能帮助这个新手。

1 个答案:

答案 0 :(得分:0)

您尝试打印的方式将在运行Django服务器的终端中显示打印件。如果您只是需要快速查看,请查看。

如果要将值输出到渲染页面,则必须使用模板tages将其包含在模板中。您似乎将{'soc': soc}作为上下文发送到模板。因此,您应该能够在模板中使用它。因此,在您的模板(socs/detail.html)中,只需在某处添加{{ soc }}即可打印出该值。模板具有对象的完全访问权限,因此如果您想要特定的内容,您也可以打印它(如{{ soc.id }})。

如果您想要查看对象中的所有内容而不自己指定所有不同的字段,请发送OBJECT.__dir__。例如,为此,您需要发送{'soc': soc.__dir__}作为上下文。请记住,除了您的检查之外,这可能不应用于任何其他任何事情。

如果您想了解有关Django模板的更多信息,请查看the syntax and more