Django-debug-toolbar: ๋””๋ฒ„๊ทธ ๋„๊ตฌ ๋ชจ์Œ ํŒจ๋„์€ ๊ฑฐ์˜ ํ•ญ์ƒ ๋น„์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2013๋…„ 11์›” 22์ผ  ยท  6์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: jazzband/django-debug-toolbar

๋‚ด ์‚ฌ์ดํŠธ๋ฅผ ๋กœ๋“œํ•  ๋•Œ ๊ฑฐ์˜ ํ•ญ์ƒ ๋””๋ฒ„๊ทธ ๋„๊ตฌ ๋ชจ์Œ์ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋น„์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

http://imgur.com/fj49NHX

๋‚ด ํ”„๋กœ์ ํŠธ settings.py์—์„œ ๋‹ค์Œ ๊ตฌ์„ฑ์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

DEBUG = True
TEMPLATE_DEBUG = DEBUG

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'debug_toolbar.middleware.DebugToolbarMiddleware',
    )

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.webdesign',
    # Uncomment the next line to enable the admin:
     'django.contrib.admin',
    # Uncomment the next line to enable admin documentation:
     'django.contrib.admindocs',
     'django.contrib.humanize',
     'django.contrib.staticfiles',
     'watrbuzz',
     'watrworld',
     'accounts',
     'whregistration',
     'whprofiles',
     'analytical',
     'watrdata',
     'watrplace',
     'analytical',
     'debug_toolbar',
     'debug_toolbar_mongo',
)

INTERNAL_IPS = (
    '127.0.0.1', 
    'XX.XX.XXX.XXX',
)

DEBUG_TOOLBAR_PANELS = (
    'debug_toolbar.panels.version.VersionDebugPanel',
    'debug_toolbar.panels.timer.TimerDebugPanel',
    'debug_toolbar.panels.settings_vars.SettingsVarsDebugPanel',
    'debug_toolbar.panels.headers.HeaderDebugPanel',
    'debug_toolbar.panels.request_vars.RequestVarsDebugPanel',
    #'debug_toolbar.panels.sql.SQLDebugPanel',
    'debug_toolbar.panels.template.TemplateDebugPanel',
    'debug_toolbar.panels.cache.CacheDebugPanel',
    'debug_toolbar.panels.signals.SignalDebugPanel',
    'debug_toolbar.panels.logger.LoggingPanel',
    #'debug_toolbar.panels.redirects.InterceptRedirectsPanel',
    'debug_toolbar_mongo.panel.MongoDebugPanel',
)

def show_toolbar(request):
    return True


DEBUG_TOOLBAR_CONFIG = {
    'INTERCEPT_REDIRECTS': False,
    #'SHOW_TOOLBAR_CALLBACK': show_toolbar,
    # 'EXTRA_SIGNALS': ['myproject.signals.MySignal'],
    #'HIDE_DJANGO_SQL': False,
    'TAG': 'div',
    'DEBUG_TOOLBAR_MEDIA_ROOT' : ' /usr/lib/python2.7/site-packages/debug_toolbar/', 
    'RENDER_PANELS' : True
    }

๋‚ด ์›น ์•ฑ์ด ํŠธ๋ ˆ์ด์Šค๋ฐฑ์„ ํ‘œ์‹œํ•˜๋„๋ก ๊ฐ•์ œํ•˜๋ฉด ํŒจ๋„์ด ์ฑ„์›Œ์ง„ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŽ˜์ด์ง€๋Š” HTML๋กœ ๋˜์–ด ์žˆ์œผ๋ฉฐ ํ•„์ˆ˜ <html></html> <body></body> ํƒœ๊ทธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์˜ˆ, ์ดํ•ดํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜์ง€ ์•Š๊ณ  ๋งน๋ชฉ์ ์œผ๋กœ ๋‚ด์šฉ์„ ๋ณต์‚ฌํ•˜์—ฌ ๋ถ™์—ฌ ๋„ฃ์œผ๋ฉด ์ˆ˜์ค€ ์ดํ•˜์˜ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Œ์„ ๋…์ž๋“ค์—๊ฒŒ ์ƒ๊ธฐ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ๋ฐฉ๊ธˆ ๋ฌธ์„œ๋ฅผ ์—…๋ฐ์ดํŠธํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  6 ๋Œ“๊ธ€

์ด๊ฒƒ์€ ๋ณธ๊ฒฉ์ ์ธ ํ”„๋กœ์ ํŠธ์—์„œ ์›๊ฒฉ์œผ๋กœ ์ง„๋‹จํ•˜๊ธฐ๊ฐ€ ๋งค์šฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์ •๋ง๋กœ ๋‹น์‹ ์„ ๋„์šธ ์ˆ˜ ์žˆ๊ธฐ ์ „์— ๋‹น์‹ ์€ ๋ฌธ์ œ๋ฅผ ์ตœ์†Œํ•œ์˜ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋กœ ์ค„์—ฌ์•ผ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

DEBUG_TOOLBAR_PANELS ๋ฐ DEBUG_TOOLBAR_CONFIG ์„ค์ •์„ ์ œ๊ฑฐํ•˜๊ณ  $# INSTALLED_APPS debug_toolbar_mongo ๋„ ์ œ๊ฑฐํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ๊ณ„์† ๋ฐœ์ƒํ•ฉ๋‹ˆ๊นŒ?

๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ ๋ฌธ์ œ๋ฅผ ์œ ๋ฐœํ•˜๋Š” ์„ค์ •์„ ์ฐพ์„ ๋•Œ๊นŒ์ง€ ์ •๋ง ํ•„์š”ํ•œ ์„ค์ •์„ ํ•˜๋‚˜์”ฉ ๋‹ค์‹œ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์‚ฌ์‹ค 'TAG': 'div', ์ด ๊ตฌ์„ฑ์—์„œ ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋””๋ฒ„๊ทธ ๋„๊ตฌ ๋ชจ์Œ์—์„œ ์ด ๋ฌธ์ œ๋ฅผ ๋ณด๋‹ค ๊ตฌ์ฒด์ ์ธ ๋ฌธ์ œ๋กœ ์ค„์ผ ์ˆ˜ ์žˆ์œผ๋ฉด ๋‹ค์‹œ ์—ฌ์‹ญ์‹œ์˜ค.

๊ฐ™์€ ๋ฌธ์ œ

http://snag.gy/FCYng.jpg

MIDDLEWARE_CLASSES = (
    'debug_toolbar.middleware.DebugToolbarMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
)

INTERNAL_IPS = ('127.0.0.1', 'XXX.XXX.XXX.XXX',)

INSTALLED_APPS += (
    'debug_toolbar',
)


DEBUG_TOOLBAR_PANELS = [
    'debug_toolbar.panels.versions.VersionsPanel',
    'debug_toolbar.panels.timer.TimerPanel',
    'debug_toolbar.panels.settings.SettingsPanel',
    'debug_toolbar.panels.headers.HeadersPanel',
    'debug_toolbar.panels.request.RequestPanel',
    'debug_toolbar.panels.sql.SQLPanel',
    'debug_toolbar.panels.templates.TemplatesPanel',
    'debug_toolbar.panels.cache.CachePanel',
    'debug_toolbar.panels.signals.SignalsPanel',
    'debug_toolbar.panels.logging.LoggingPanel',
    'debug_toolbar.panels.redirects.RedirectsPanel',
    'debug_toolbar.panels.profiling.ProfilingPanel',
]

def custom_show_toolbar(request):
    return True  # Always show toolbar, for example purposes only.

DEBUG_TOOLBAR_CONFIG = {
    'INTERCEPT_REDIRECTS': True,
    'SHOW_TOOLBAR_CALLBACK': custom_show_toolbar,
    'EXTRA_SIGNALS': ['myproject.signals.MySignal'],
    'HIDE_DJANGO_SQL': False,
    'TAG': 'div',
    'ENABLE_STACKTRACES': True,
    'HIDE_IN_STACKTRACES': ('gunicorn', 'newrelic'),
}

์žฅ๊ณ  1.6

DEBUG_TOOLBAR_CONFIG ์˜ ๊ฐ’์ด ํ”„๋กœ์ ํŠธ์— ์˜๋ฏธ๊ฐ€ ์žˆ๋‹ค๊ณ  ํ™•์‹ ํ•˜์‹ญ๋‹ˆ๊นŒ?

DEBUG_TOOLBAR_CONFIG ์„ ์™„์ „ํžˆ ์ œ๊ฑฐํ•˜๋ฉด ์–ด๋–ป๊ฒŒ ๋ฉ๋‹ˆ๊นŒ? ๊ธฐ๋ณธ๊ฐ’์ด ์ด ๊ตฌ์„ฑ๋ณด๋‹ค ๋” ์ž˜ ์ž‘๋™ํ•  ๊ฒƒ์ด๋ผ๊ณ  ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค.

์„ค์ •์˜ ์ผ๋ถ€๋ฅผ ์ œ๊ฑฐํ–ˆ๊ณ  ์ด์ œ ์ž‘๋™ํ•˜์ง€๋งŒ ๋ฌธ์„œ์—์„œ ์ด๋ฅผ ๋ถ„๋ช…ํžˆ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

MIDDLEWARE_CLASSES = (
    'debug_toolbar.middleware.DebugToolbarMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
)

INTERNAL_IPS = ('127.0.0.1', 'XXX.XXX.XXX.XXX',)

INSTALLED_APPS += (
    'debug_toolbar',
)

# DEBUG_TOOLBAR_PANELS = [
#     'debug_toolbar.panels.versions.VersionsPanel',
#     'debug_toolbar.panels.timer.TimerPanel',
#     'debug_toolbar.panels.settings.SettingsPanel',
#     'debug_toolbar.panels.headers.HeadersPanel',
#     'debug_toolbar.panels.request.RequestPanel',
#     'debug_toolbar.panels.sql.SQLPanel',
#     'debug_toolbar.panels.templates.TemplatesPanel',
#     'debug_toolbar.panels.cache.CachePanel',
#     'debug_toolbar.panels.signals.SignalsPanel',
#     'debug_toolbar.panels.logging.LoggingPanel',
#     'debug_toolbar.panels.redirects.RedirectsPanel',
#     'debug_toolbar.panels.profiling.ProfilingPanel',
# ]

# def custom_show_toolbar(request):
#     return True  # Always show toolbar, for example purposes only.

# DEBUG_TOOLBAR_CONFIG = {
#     'INTERCEPT_REDIRECTS': True,
#     'SHOW_TOOLBAR_CALLBACK': custom_show_toolbar,
#     'EXTRA_SIGNALS': ['myproject.signals.MySignal'],
#     'HIDE_DJANGO_SQL': False,
#     'TAG': 'div',
#     'ENABLE_STACKTRACES': True,
#     'HIDE_IN_STACKTRACES': ('gunicorn', 'newrelic'),
# }

๊ฐ์‚ฌ ํ•ด์š”

์˜ˆ, ์ดํ•ดํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜์ง€ ์•Š๊ณ  ๋งน๋ชฉ์ ์œผ๋กœ ๋‚ด์šฉ์„ ๋ณต์‚ฌํ•˜์—ฌ ๋ถ™์—ฌ ๋„ฃ์œผ๋ฉด ์ˆ˜์ค€ ์ดํ•˜์˜ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Œ์„ ๋…์ž๋“ค์—๊ฒŒ ์ƒ๊ธฐ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ๋ฐฉ๊ธˆ ๋ฌธ์„œ๋ฅผ ์—…๋ฐ์ดํŠธํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰