我来自CakePHP,刚开始玩Django框架。在CakePHP中,我习惯使用pr()直接打印出所有返回的数组到网页。例如:
我想知道我是否可以在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})
我花了两天时间做研究,但我找不到答案。我希望你们中的一个能帮助这个新手。
答案 0 :(得分:0)
您尝试打印的方式将在运行Django服务器的终端中显示打印件。如果您只是需要快速查看,请查看。
如果要将值输出到渲染页面,则必须使用模板tages将其包含在模板中。您似乎将{'soc': soc}
作为上下文发送到模板。因此,您应该能够在模板中使用它。因此,在您的模板(socs/detail.html
)中,只需在某处添加{{ soc }}
即可打印出该值。模板具有对象的完全访问权限,因此如果您想要特定的内容,您也可以打印它(如{{ soc.id }}
)。
如果您想要查看对象中的所有内容而不自己指定所有不同的字段,请发送OBJECT.__dir__
。例如,为此,您需要发送{'soc': soc.__dir__}
作为上下文。请记住,除了您的检查之外,这可能不应用于任何其他任何事情。
如果您想了解有关Django模板的更多信息,请查看the syntax and more。