【发布时间】:2014-12-14 23:19:27
【问题描述】:
我来自 PHP 背景,我一直在尝试学习 Python,但在调试时遇到了很多麻烦,因为我还不确定如何在 Django 或 Python 中进行此操作.
我习惯于在 PHP 中使用 print_r 或 var_dump 一切。我可以在控制器中、在服务层中执行此操作,甚至模型和数据都会显示在我的网络浏览器中。
我不能在 Django 中做到这一点。根据我在做什么,尝试从我的视图中对一个对象执行print 会导致页面关闭或向我的控制台输出一些对我没有帮助的内容。这是一个例子:
class Page(View):
def get(self, request, *args, **kwargs):
response = Data.objects.all()
# for whatever reason, I want to print something right now:
print response
# return JsonResponse({'success':response})
以上内容将完全删除我的页面,并带有一条通知:
The view didn't return an HttpResponse object. It returned None instead.
在使用 CBV 的某些情况下,我注意到我可以将数据转储到控制台等某个地方。但这对我没有任何帮助。例如,如果我试图从上面查看 response 的内容,它会显示如下:
[object Object] [object Object] [object Object]
var_dump 可以让我真正看到它的内部。
所以我猜我做错了。人们在 Python 中调试时是否只是转储数据?如果他们这样做,您如何执行此操作,它是否显示在 Web 浏览器或控制台中?如果没有,我该如何处理 Django 中的基本故障排除?示例场景:
- 我想查看列表或字典的内容
- 我想查看 ORM 执行的原始 sql 查询
- 我想通过在前端输出一些文本来查看函数是否正在执行
【问题讨论】: