สวัสดีครับคุณผู้อ่านทุกท่าน วันนี้ผมจะมานำเสนอเครื่องมือตัวหนึ่ง ซึ่งถ้าท่านใดที่ใช้ Django อยู่ เครื่องมือตัวนี้เรียกได้ว่าของมันต้องมีกันเลยแหละครับ
ซึ่งเจ้าเครื่องมือตัวนี้ก็คือ **“Django Debug Toolbar”**ซึ่งมันก็คือเครื่องมือที่เอาไว้ใช้ในการทดสอบ ดีบั๊กตัว Django โปรเจคท์ของเราในฝั่ง backend เช่น หน้าเว็บนี้มีการ Query ไปทั้งหมดจำนวนกี่ครั้ง และมีการ Query มาจากตารางไหนบ้าง, มีการ request ไปทั้งหมดเท่าไร, มี Caching หรือไม่ในหน้านี้ รวมทั้ง logs ต่าง ๆ ในฝั่ง backend และยังมีฟีเจอร์อีกหลายฟีเจอร์นอกจากนี้
ซึ่งพอได้อ่านแบบนี้แล้ว ท่านใดที่ยังไม่ได้มีเครื่องมือตัวนี้ไว้ใช้ ไม่รอช้าไปติดตั้งกันเลยดีกว่าครับ แล้วชีวิตการพัฒนาเว็บด้วย Django ของเราจะดีขึ้นมากมาย
1. ติดตั้ง django-debug-toolbar
pip install django-debug-toolbar
2. ทำการ register ใน INSTALLED_APPS
django debug toolbar ก็คือแอป ๆ หนึ่ง ดังนั้นเมื่อมีการเรียกใช้งานแอป จำเป็นต้องมีการรีจิสเตอร์แอปเสมอ
settings.py
INSTALLED_APPS = [
# ...
'django.contrib.staticfiles',
# ...
'debug_toolbar',
]
** เช็คให้แน่ใจว่าแอป django.contrib.staticfiles นั้นถูกรีจิสเตอร์ไว้อย่างถูกตัอง
3. เพิ่ม path เข้าไปใน urls.py ของโปรเจคท์
# urls.pyfrom django.conf import settings
from django.urls import include, path
if settings.DEBUG:
import debug_toolbar
urlpatterns = [
path('__debug__/', include(debug_toolbar.urls)),
] + urlpatterns
4. เปิดใช้งานใน Middleware
settings.py
MIDDLEWARE = [
# ...
'debug_toolbar.middleware.DebugToolbarMiddleware',
# ...
]
5. คอนฟิก IPs
จำเป็นต้องมีการคอนฟิก IP ก่อนเสมอถ้าต้องการให้ django debug toolbar แสดงผล
settings.py
settings.py
INTERNAL_IPS = [
# ...
'127.0.0.1',
# ...
]
เสร็จสิ้นขั้นตอนการติดตั้งและเรียกใช้งาน Django Debug Toolbar ทำการรีเฟรชหน้าเว็บ จะได้พบกับหน้า debug toolbar ที่รอคอยกันแล้ว

ทดสอบดูว่าหน้านี้มีจำนวน Query ทั้งหมดกี่ครั้ง

หน้านี้มีการการจำนวน query อยู่ 2 queries จากตาราง 2 ตาราง และตารางที่ 2 ใช้เวลาในการ query นานกว่าตารางแรก
จบกันแล้วครับกับการติดตั้งและเรียกใช้งาน Django Debug Toolbar ชีวิตการพัฒนาเว็บด้วย Django สะดวกและง่ายขึ้นเยอะเลยใช่ไหมครับกับเครื่องมือสุดแจ่มตัวนี้
Reference
Django Debug Toolbar documentation
