Django如何在使用runserver时打印数据

ale*_*lex 3 django

我有一个字典数据,其中包含每个用户创建的玩家数量:

视图.py

def statistics(request):
    users = User.objects.all()
    data = dict()
    for user in users:
        players = Players.objects.filter(created__email=user.email).count()
        if players > 0:
            data[user.email] = players
            logger.info(data)
Run Code Online (Sandbox Code Playgroud)

使用 runserver 时如何在控制台中打印此字典?我见过 django 记录器,但我没有完全理解它们。

itz*_*nTV 5

你应该像

import os

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'filters': {
        'require_debug_true': {
            '()': 'django.utils.log.RequireDebugTrue',
        },
    },
    'handlers': {
        'console': {
            'class': 'logging.StreamHandler',
            'filters': ['require_debug_true'],
        },
    },
    'loggers': {
        'mylogger': {
            'handlers': ['console'],
            'level': os.getenv('DJANGO_LOG_LEVEL', 'INFO'),
            'propagate': True,
        },
    },
}
Run Code Online (Sandbox Code Playgroud)

这将在DEBUG = True(通常使用 runserver)时打印到控制台。然后你可以做

import logging
logger = logging.getLogger("mylogger")
logger.info("Whatever to log")
Run Code Online (Sandbox Code Playgroud)

参考文档