Im trying to setup bottle debug toolbar but get the following error...
todo.py
import sqlite3
import bottle
from bottle_debugtoolbar import DebugToolbarPlugin
from bottle import route, run, debug, template, request, error, PasteServer
config = {'DEBUG_TB_ENABLED': True,
'DEBUG_TB_INTERCEPT_REDIRECTS':True
}
plugin = DebugToolbarPlugin(config)
bottle.install(plugin)
Error
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/bottle.py", line 862, in _handle
return route.call(**args)
File "/usr/local/lib/python2.7/dist-packages/bottle.py", line 1727, in wrapper
rv = callback(*a, **ka)
File "/usr/local/lib/python2.7/dist-packages/bottle_debugtoolbar/__init__.py", line 75, in wrapper
return self.process_response(content)
File "/usr/local/lib/python2.7/dist-packages/bottle_debugtoolbar/__init__.py", line 135, in process_response
and bottle.response.headers['content-type'].startswith('text/html')
File "/usr/local/lib/python2.7/dist-packages/bottle.py", line 1930, in __getitem__
def __getitem__(self, key): return self.dict[_hkey(key)][-1]
KeyError: 'Content-Type'
bottle-debugtoolbar
makes an assumption that Content-type
response header is set.
Just set the response content-type using bottle.response:
from bottle import response
...
@bottle.route('/')
def index():
response.headers['Content-Type'] = 'text/html; charset=UTF-8'
...
UPD:
Here's a simple working example:
import bottle
from bottle_debugtoolbar import DebugToolbarPlugin
from bottle import response
config = {
'DEBUG_TB_ENABLED': True,
'DEBUG_TB_INTERCEPT_REDIRECTS': True,
}
plugin = DebugToolbarPlugin(config)
bottle.install(plugin)
@bottle.route('/')
def guestbook_index():
response.headers['Content-Type'] = 'text/html; charset=UTF-8'
return '<html><body>Hello, world</body></html>'
bottle.debug(True)
bottle.run(host='localhost', port=8082)
Hope that helps.