diff options
| author | Rob Hudson | 2008-09-20 17:00:19 -0700 | 
|---|---|---|
| committer | Rob Hudson | 2008-09-20 17:00:19 -0700 | 
| commit | f40ad85645f27fc4b80683acdbefd01a1da51afd (patch) | |
| tree | 8c8702d6f68046a5b59fceba8af1b9e750b372d3 /debug_toolbar/panels/sql.py | |
| parent | 7677c7e39c56a040dfb523169fcaa7d58645d2b8 (diff) | |
| download | django-debug-toolbar-f40ad85645f27fc4b80683acdbefd01a1da51afd.tar.bz2 | |
Updating SQL panel to use Pygments for SQL highlighting if it's available,
moving the EXPLAIN link to the left to avoid scrolling.
I have a feeling that the SQL panel could use a serious security review since
we're passing SQL in via GET which is, I'm sure, a big no-no.
Diffstat (limited to 'debug_toolbar/panels/sql.py')
| -rw-r--r-- | debug_toolbar/panels/sql.py | 19 | 
1 files changed, 14 insertions, 5 deletions
| diff --git a/debug_toolbar/panels/sql.py b/debug_toolbar/panels/sql.py index cdcbd1b..4b059ac 100644 --- a/debug_toolbar/panels/sql.py +++ b/debug_toolbar/panels/sql.py @@ -57,9 +57,18 @@ class SQLDebugPanel(DebugPanel):  def reformat_sql(sql):      sql = sql.replace('`,`', '`, `') -    sql = sql.replace('` FROM `', '` \n  FROM `') -    sql = sql.replace('` WHERE ', '` \n  WHERE ') -    sql = sql.replace('` INNER JOIN ', '` \n  INNER JOIN ') -    sql = sql.replace('` OUTER JOIN ', '` \n  OUTER JOIN ') -    sql = sql.replace(' ORDER BY ', ' \n  ORDER BY ') +    sql = sql.replace('SELECT ', 'SELECT\n\t') +    sql = sql.replace('` FROM ', '`\nFROM\n\t') +    sql = sql.replace('` WHERE ', '`\nWHERE\n\t') +    sql = sql.replace('` INNER JOIN ', '`\nINNER JOIN\n\t') +    sql = sql.replace('` OUTER JOIN ', '`\nOUTER JOIN\n\t') +    sql = sql.replace(' ORDER BY ', '\nORDER BY\n\t') +    # Use Pygments to highlight SQL if it's available +    try: +        from pygments import highlight +        from pygments.lexers import SqlLexer +        from pygments.formatters import HtmlFormatter +        sql = highlight(sql, SqlLexer(), HtmlFormatter(noclasses=True)) +    except ImportError: +        pass      return sql | 
