我正在开发我的第一个django网站。
我在视图层中编写了代码(将HttpResponse对象返回到视图模板的处理程序(希望我使用正确的术语)。
在任何情况下,我都想将print语句放在我的views.py文件中,以便我可以调试它。但是,看起来stdout已经重定向到另一个流,所以我没有在控制台(甚至是浏览器)上看到任何打印出来。
调试django视图层脚本的推荐方法(最佳实践)是什么?
答案 0 :(得分:3)
有更高级的方法,但我发现丢弃
import pdb
pdb.set_trace()
完成这项工作。
答案 1 :(得分:2)
使用Python logging
模块。然后使用Django调试工具栏,它将捕获并显示您发送到日志的所有内容。
答案 2 :(得分:1)
我支持dysmsyd,但我没有声誉。 pdb很好,因为它允许您逐步执行程序并遵循控制流程。
如果您使用的是django runserver,则可以打印到stdout或stderr。 如果您使用的是mod_wsgi,则可以打印到stderr。 pprint模块也很有用:
import sys
from pprint import pprint
def myview(request):
pprint (request, sys.stderr)
答案 3 :(得分:1)
试试django-sentry。特别是如果您的项目处于生产阶段。
答案 4 :(得分:0)
pip install django-debug-toolbar
并按照说明进行配置:https://github.com/django-debug-toolbar/django-debug-toolbar import logging
使用日志记录进行调试:logging.debug('My DEBUG message')
以下是我在班级视图中的工作原理:
from django.views.generic import TemplateView
import logging
class ProfileView(TemplateView):
template_name = 'profile.html'
def get(self, request, *args, **kwargs):
logging.debug(kwargs)
return render(request, self.template_name)