From 1048ec1db83483a438695228a01e41a80ec22e05 Mon Sep 17 00:00:00 2001 From: mvantellingen Date: Wed, 2 Feb 2011 21:45:56 +0100 Subject: [PATCH] Add the headers panel --- flaskext/debugtoolbar/panels/headers.py | 56 +++++++++++++++++++ .../templates/panels/headers.html | 16 ++++++ flaskext/debugtoolbar/toolbar.py | 1 + 3 files changed, 73 insertions(+) create mode 100644 flaskext/debugtoolbar/panels/headers.py create mode 100644 flaskext/debugtoolbar/templates/panels/headers.html diff --git a/flaskext/debugtoolbar/panels/headers.py b/flaskext/debugtoolbar/panels/headers.py new file mode 100644 index 0000000..87e4ca0 --- /dev/null +++ b/flaskext/debugtoolbar/panels/headers.py @@ -0,0 +1,56 @@ +from flaskext.debugtoolbar.panels import DebugPanel + +_ = lambda x: x + + +class HeaderDebugPanel(DebugPanel): + """ + A panel to display HTTP headers. + """ + name = 'Header' + has_content = True + # List of headers we want to display + header_filter = ( + 'CONTENT_TYPE', + 'HTTP_ACCEPT', + 'HTTP_ACCEPT_CHARSET', + 'HTTP_ACCEPT_ENCODING', + 'HTTP_ACCEPT_LANGUAGE', + 'HTTP_CACHE_CONTROL', + 'HTTP_CONNECTION', + 'HTTP_HOST', + 'HTTP_KEEP_ALIVE', + 'HTTP_REFERER', + 'HTTP_USER_AGENT', + 'QUERY_STRING', + 'REMOTE_ADDR', + 'REMOTE_HOST', + 'REQUEST_METHOD', + 'SCRIPT_NAME', + 'SERVER_NAME', + 'SERVER_PORT', + 'SERVER_PROTOCOL', + 'SERVER_SOFTWARE', + ) + + def nav_title(self): + return _('HTTP Headers') + + def title(self): + return _('HTTP Headers') + + def url(self): + return '' + + def process_request(self, request): + self.headers = dict( + [(k, request.environ[k]) + for k in self.header_filter if k in request.environ] + ) + + def content(self): + context = self.context.copy() + context.update({ + 'headers': self.headers + }) + return self.render('panels/headers.html', context) diff --git a/flaskext/debugtoolbar/templates/panels/headers.html b/flaskext/debugtoolbar/templates/panels/headers.html new file mode 100644 index 0000000..91e2e0c --- /dev/null +++ b/flaskext/debugtoolbar/templates/panels/headers.html @@ -0,0 +1,16 @@ + + + + + + + + + {% for key, value in headers.iteritems() %} + + + + + {% endfor %} + +
KeyValue
{{ key|escape }}{{ value|escape }}
diff --git a/flaskext/debugtoolbar/toolbar.py b/flaskext/debugtoolbar/toolbar.py index 2349131..6ae0f07 100644 --- a/flaskext/debugtoolbar/toolbar.py +++ b/flaskext/debugtoolbar/toolbar.py @@ -12,6 +12,7 @@ class DebugToolbar(object): self.default_panels = [ 'flaskext.debugtoolbar.panels.timer.TimerDebugPanel', + 'flaskext.debugtoolbar.panels.headers.HeaderDebugPanel', 'flaskext.debugtoolbar.panels.request_vars.RequestVarsDebugPanel', 'flaskext.debugtoolbar.panels.logger.LoggingPanel', ]