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


How to print query result in python/django

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

  • 控制器向视图吐出$result,我使用pr($result(,它会打印出网页上的所有内容,这样我就知道如何从视图中遍历$result
  • 一个表单POST一个$request到一个Controller,在Controller中处理它之前,我使用pr($request(来查看发送的内容。在我点击提交表单后,$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"中的内容呢。在cakepp中,我可以直接在那里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})

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

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

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

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

如果您想了解更多关于Django模板的信息,请查看语法等。