django:在视图层调试代码

发布于 2024-09-30 06:43:49 字数 228 浏览 4 评论 0原文

我正在开发我的第一个 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

热鲨 2024-10-07 06:43:49

有更高级的方法可以做到这一点,但我发现放弃

import pdb
pdb.set_trace()

可以完成这项工作。

there are more advanced ways of doing it, but i find dropping

import pdb
pdb.set_trace()

does the job.

乖不如嘢 2024-10-07 06:43:49

使用 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.

温折酒 2024-10-07 06:43:49

我会投票给 Dymsy​​d,但我没有声誉。
pdb 很好,因为它可以让您单步执行过程并遵循控制流程。

如果您使用 django runserver,则可以打印到 stdout 或 stderr。
如果您使用 mod_wsgi,则可以打印到 stderr。
pprint 模块也很有用:

import sys
from pprint import pprint

def myview(request):
   pprint (request, sys.stderr)

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:

import sys
from pprint import pprint

def myview(request):
   pprint (request, sys.stderr)
旧人哭 2024-10-07 06:43:49

尝试 django-sentry。特别是如果您的项目处于生产阶段。

Try django-sentry. Especially if your project is in production stage.

Oo萌小芽oO 2024-10-07 06:43:49
  1. 配置 django 调试工具栏:pip install django-debug-toolbar 并按照说明进行配置:https://github.com/django-debug-toolbar/django-debug-toolbar
  2. 导入日志记录

  3. 使用日志记录进行调试: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)
  1. Configure django debug toolbar: pip install django-debug-toolbar and follow the instructions to configure it in: https://github.com/django-debug-toolbar/django-debug-toolbar
  2. import logging

  3. Use the logging to debug: logging.debug('My DEBUG message')

Here is how it works on my class view:

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)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文