python - 在 pycharm 的标准输出中查看 django.db.backends 日志

标签 python django pycharm django-south

我在 Pycharm 上遇到问题。

当我运行测试时,我无法在 stdout/stderr 上显示 django.db.backends 日志。

当我使用 runserver 时,它就像一个魅力。

您是否有任何简单的解决方案来在我的测试

的标准输出上显示所有带有 level=DEBUG 的日志?

更多信息:

  • 我的 DEBUG 在我的设置中设置为 True
  • 我使用 SOUTH_TESTS_MIGRATE = FalseSKIP_SOUTH_TESTS = True

谢谢

最佳答案

首先,django 在 UnitTest ( Writing and running tests in Django ) 期间将 settings.DEBUG 强制设置为 False。 因此,您应该使用 override_settings 装饰器激活临时此设置:

来自 django 文档:

from django.test import TestCase
from django.test.utils import override_settings

class LoginTestCase(TestCase):

    @override_settings(LOGIN_URL='/other/login/')
    def test_login(self):
        response = self.client.get('/sekrit/')
        self.assertRedirects(response, '/other/login/?next=/sekrit/')

但是阅读django源码,也可以设置connection对象的use_debug_cursor属性。如果设置为 True,将使用 CursorDebugWrapper 并显示查询日志。

从 django 源代码中提取(django/db/backends/__init__.py):

class BaseDatabaseWrapper(object):
    # [...]
    def cursor(self):
        self.validate_thread_sharing()
        if (self.use_debug_cursor or
            (self.use_debug_cursor is None and settings.DEBUG)):
            cursor = self.make_debug_cursor(self._cursor())
        else:
            cursor = util.CursorWrapper(self._cursor(), self)
        return cursor

    def make_debug_cursor(self, cursor):
        return util.CursorDebugWrapper(cursor, self)

关于python - 在 pycharm 的标准输出中查看 django.db.backends 日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21476632/

相关文章:

python - 如何从 URL 查询字符串中查找非空变量?或者我们可以从 python 中的请求中获取 URL 查询字符串中的变量

python - 将表单数据保存到数据库并将其发送到API; Django

python - 在 Django 中安全地存储加密凭证

python - Pycharm 在创建新项目时不显示框架选择

java - PyCharm 无法连接到网关后面的远程(java.net.UnknownHostException)

Python/Kivy 属性错误

python - 如何在 python 中使用 ctypes 重载 C 库的弱声明函数?

Python 3,如何设置 Visual Studio C++ 2015 编译器?

sql - 用大写字母命名 django 应用程序可以吗?

python - 使用原始输入删除 python 中列表的元素