我是Django的新手,很难弄清楚如何打印一个对象里面的内容。我指的是变量的类型和值,以及它里面的成员。就像Laravel的dd(object)
函数一样。Laravel的dd()
是一个调试应用程序的方便工具。
我搜索过它。但是没有找到任何有用的东西。我试过pprint()
、simplejson
、print(type(object)
和{% debug %}
。但是它们都不能提供关于对象的所需信息。下面是Laravel的dd()
函数的示例输出。
在这个图像中,我正在打印Laravel的请求对象。正如你所看到的,它显示了关于一个对象的完整信息。我指的是它所属的类名,它的成员变量。还有它的类名和值。它一直深入挖掘对象内部,并打印所有信息。
但是我在Django中找不到类似的工具,很难相信Django没有这样一个有用的工具,因此我想知道有没有第三方软件包可以做到这一点。
我正在使用Django 2.0.5版,并尝试打印django.contrib.messages
另外,我希望输出结果显示在浏览器中,而不是控制台中。这就是为什么我要求一个Django包,它可以接收对象并呈现一个格式良好的对象架构表示。
5条答案
按热度按时间myss37ts1#
您正在寻找
__dict__
属性或dir()
使用pprint进行美化输出
dauxcl2d2#
引发一个异常。假设你已经调试了,你会看到异常消息。它很粗糙,但它在过去帮助了我。
只是:
其他的回答和评论者忽略了dd()函数中至关重要的“and die”部分,它阻止了诸如后续重定向之类的事情。
3npbholx3#
实际上Django并没有提供这个专门的函数。所以为了解决这个问题,我做了一个自定义的
dd()
类型函数,并在所有的Django项目中使用它。也许它能帮助一些人。假设我们有一个名为
app_libs
的库文件夹,并且在该文件夹中有一个名为dump.py
的库文件。例如app_libs > dump.py:
当您需要使用此函数时,只需在任何www.example.com中这样调用它views.py:
就是这样。
jq6vz3qz4#
gpnt7bae5#
我正在寻找类似的东西,有这个python包
django-dump-die
,提供正是这一点,它的灵感来自laravel. https://pypi.org/project/django-dump-die/0.1.5/