自定义Django runserver输出
我想修改 Django 运行服务器时的输出内容... 我想添加当前对象的地址,比如 apps.views.index
。
还想把这个请求中的所有查询都加上。
我该怎么改代码来实现这个设置呢?
3 个回答
0
这不是你问题的确切答案,但我觉得django-debug-toolbar可以显示所有的查询和很多其他有用的信息。
2
我不太建议修改runserver命令,但……
django-devserver提供了一个替代的manage.py runserver
命令,这个替代命令可以让你扩展输出内容,显示你感兴趣的任何信息。
上面链接的页面有安装的说明,页面底部有一个“构建模块”的部分,里面展示了如何扩展输出的例子。
我不太确定你想要输出什么,但也许可以像这样:
from devserver.modules import DevServerModule
class ViewNameModule(DevServerModule):
logger_name = 'view name module'
def process_view(self, request, view_func, view_args, view_kwargs):
self.logger.info('View name: %s' % '.'.join([view_func.__module__, view_func.func_name]))
1
我觉得最好的办法是使用日志功能,并在这个基础上加一些代码。
比如:
from django.db import connection
sql=connection.queries
还有:
doc = {
'record_hash': hash,
'level': record.level,
'channel': record.channel or u'',
'location': u'%s:%d' % (record.filename, record.lineno),
"message": record.msg,
'module': record.module or u'<unknown>',
'occurrence_count': 0,
'solved': False,
'app_id': app_id,
'sql': sql,
}
想了解更多,可以查看这个链接:http://docs.djangoproject.com/en/dev/topics/logging/