【问题标题】:customize django runserver output自定义 django runserver 输出
【发布时间】:2011-07-25 06:32:20
【问题描述】:

我想编辑 django runserver 的输出...我想现在添加对象地址,例如 apps.views.index

在此请求中添加所有查询

如何更改此设置的代码?

【问题讨论】:

    标签: python django logging


    【解决方案1】:

    我不建议修改 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]))
    

    【讨论】:

    • process_view middleware 可以做几乎相同的事情——这里的架构是基于中间件的。如果您希望它在每个视图中都可用,请将其与 context processor 组合,然后将其作为模板变量吐出。
    【解决方案2】:

    我认为最好的方法是使用日志记录并为此添加一些代码

    喜欢

    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/了解更多信息

    【讨论】:

    • 而 doc 到底去了哪里?
    【解决方案3】:

    不是您问题的确切答案,但我认为django-debug-toolbar 显示了所有查询和许多其他有用信息。

    【讨论】:

      猜你喜欢
      • 2023-03-11
      • 1970-01-01
      • 2015-05-26
      • 2016-02-21
      • 2010-12-15
      • 2013-01-13
      • 2019-03-07
      • 2021-10-31
      • 1970-01-01
      相关资源
      最近更新 更多