我來自PHP背景,我一直在嘗試學習Python,但是在調試時遇到了很多麻煩,因爲我還不確定如何在Django或Python中進行這方面的工作。如何在Django中排除故障?
我已經習慣了能夠在PHP中使用print_r
或var_dump
。我可以在控制器中做到這一點,在服務層,甚至模型和數據都會顯示在我的Web瀏覽器中。
我不能在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中的基本故障排除?實施例場景:
- 我想看列表或字典
- 的內容我想看到的原始SQL查詢由ORM
- 我想看看是否正在被執行的功能被執行滑動一些文本在前端輸出
對於'調試'模式的+1 - 這正是這是爲了什麼。 – Ben 2014-10-20 08:02:00