django:在视图层调试代码
我正在开发我的第一个 Django 网站。
我已经在我的视图层中编写了代码(将 HttpResponse 对象返回到视图模板的处理程序(希望我使用正确的术语)。
无论如何,我想将打印语句放在我的views.py 文件中,以便我可以调试它。但是,标准输出似乎已重定向到另一个流,因此我在控制台(甚至浏览器)上没有看到任何打印内容,
调试 django 视图层脚本的推荐方法(最佳实践)是什么? ?
I am developing my first django website.
I have written code in my view layer (the handlers that return an HttpResponse object to the view template (hope I am using the correct terminology).
In any case, I want to put print statements in my views.py file, so that I can debug it. However, it looks like stdout has been redirect to another stream, so I am not seeing anything printed out on my console (or even the browser).
What is the recommended way (best practice) for debugging django view layer scripts?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
有更高级的方法可以做到这一点,但我发现放弃
可以完成这项工作。
there are more advanced ways of doing it, but i find dropping
does the job.
使用 Python
logging
模块。然后使用 Django 调试工具栏,它将捕获并显示您发送到日志的所有内容。Use the Python
logging
module. Then use the Django debug toolbar, which will catch and display all the things you send to the log.我会投票给 Dymsyd,但我没有声誉。
pdb 很好,因为它可以让您单步执行过程并遵循控制流程。
如果您使用 django runserver,则可以打印到 stdout 或 stderr。
如果您使用 mod_wsgi,则可以打印到 stderr。
pprint 模块也很有用:
I'd upvote dysmsyd, but I don't have the reputation.
pdb is good because it lets you step thru your procedure and follow the control flow.
If you are using the django runserver, you can print to stdout or stderr.
If you are using the mod_wsgi, you can print to stderr.
The pprint module is also useful:
尝试 django-sentry。特别是如果您的项目处于生产阶段。
Try django-sentry. Especially if your project is in production stage.
pip install django-debug-toolbar
并按照说明进行配置:https://github.com/django-debug-toolbar/django-debug-toolbar导入日志记录
使用日志记录进行调试:
logging.debug('My DEBUG message')
以下是它在我的类视图中的工作原理:
pip install django-debug-toolbar
and follow the instructions to configure it in: https://github.com/django-debug-toolbar/django-debug-toolbarimport logging
Use the logging to debug:
logging.debug('My DEBUG message')
Here is how it works on my class view: