2016-11-14 47 views
0

软件

  • 的Django 1.9
  • 的Python 3.4

我做了什么结果?

,我有以下的Django的代码在我的views.py记录不会显示阵列

from django.db import connection 
    cursor = connection.cursor() 
    cursor.execute('SELECT p.name, p.name_zh_hans, p.art_number, ....') 
    rows = cursor.fetchall() 

logger = logging.getLogger(__name__) 

for row in rows: 
     row_num += 1 
     logger.info(row) 
     for col_num in range(len(row)): 
      ws.write(row_num, col_num, row[col_num], font_style) 

我是怎么得到的日志文件里面?

(0.005) SELECT p.name, p.name_zh_hans, p.art_number, ....; args=None 
(0.005) SELECT p.name, p.name_zh_hans, p.art_number, ....; args=None 
(0.006) SELECT p.name, p.name_zh_hans, p.art_number, ....; args=None 

我期待什么?

的日志文件

出了什么问题内部数组内容显示?

+0

你在哪里配置了日志记录?为什么在Django中使用纯SQL? –

+0

您能告诉我们您的表中有多少行?我需要知道它是为了确定我的想法:) – Sid

回答

0

在致电logging.getLogger(__name__)之前,您可能需要设置logging.basicConfig(level=logging.INFO)

您可以查看Logging Cookbook的详细指南。

0

我相信,你所看到的实际上是从django.db.backends,结帐this reference的日志。

有关代码与数据库交互的消息。例如,对于 示例,由请求 执行的每个应用程序级SQL语句都将记录在此记录器的DEBUG级别。

消息给该记录器有以下额外的上下文:

时间:执行SQL语句所用的时间。
sql:已执行的SQL 语句。
params:在SQL调用中使用的参数 。

出于性能方面的原因,只有在settings.DEBUG设置为True时才启用SQL日志记录 ,而不管日志记录级别或安装的 处理程序。

此日志记录不包括框架级初始化(例如SET TIMEZONE)或事务管理查询(例如BEGIN,COMMIT和 ROLLBACK)。如果您希望查看 所有数据库查询,请打开数据库中的查询日志记录。

您与水平日志级别信息同时django.db.backends在DEBUG级别登录日志,以便结账也是你的日志处理程序,以确保您实际记录,你是不是有什么: )

希望它有帮助!