개요
이 튜토리얼에서는 Django 프로젝트에서 Django MongoDB Extensions의 Django Debug Toolbar 를 사용하는 방법을 학습할 수 있습니다.
Django MongoDB Extensions는 Django MongoDB 백엔드용 추가 개발자 도구가 포함된 패키지입니다. 이 튜토리얼에서는 Django Debug Toolbar와 함께 사용하기 위해 Django MongoDB Extensions에서 MongoDB 쿼리 언어(MQL) 패널을 구성하는 방법을 설명하답니다. 이 패널에서는 실행 시간과 쿼리 계획이 포함된 요청 중 애플리케이션이 실행하는 MQL 쿼리를 표시합니다.
전제 조건
이 튜토리얼을 시작하기 전에 다음 전제 조건 작업을 완료하세요.
장고 MongoDB 백엔드를 사용하는 장고 프로젝트 생성합니다. 프로젝트 만들려면 장고 MongoDB 백엔드 시작하기 튜토리얼을 참조하세요.
튜토리얼
다음 단계에서는 Django MongoDB Extensions를 설치하고, MQL 패널을 구성하고, Django 디버그 도구 모음에서 MongoDB 쿼리를 보는 방법을 보여줍니다.
MQL 패널을 등록합니다.
기본값 으로 장고 디버그 도구 모음은 DEBUG_TOOLBAR_PANELS 설정 없이도 작동합니다. 그러나 MongoDB SQL 사용하지 않기 때문에 MongoDB 애플리케이션에서 가장 일반적인 구성은 SQL 패널을 MQL 패널로 교체하는 것입니다. settings.py 파일 에 다음 설정을 추가하면 DEBUG_TOOLBAR_PANELS 가 기본값 으로 설정되지만 SQLPanel 는 MQLPanel로 바뀝니다.
DEBUG_TOOLBAR_PANELS = [ 'debug_toolbar.panels.history.HistoryPanel', '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', 'django_mongodb_extensions.mql_panel.MQLPanel', 'debug_toolbar.panels.staticfiles.StaticFilesPanel', 'debug_toolbar.panels.templates.TemplatesPanel', 'debug_toolbar.panels.alerts.AlertsPanel', 'debug_toolbar.panels.cache.CachePanel', 'debug_toolbar.panels.signals.SignalsPanel', 'debug_toolbar.panels.community.CommunityPanel', 'debug_toolbar.panels.redirects.RedirectsPanel', 'debug_toolbar.panels.profiling.ProfilingPanel', ]
sample_mflix.movies 쿼리 정보를 봅니다.
장고 MongoDB 백엔드 시작하기 튜토리얼에서 만든 애플리케이션 에 대해 Django MongoDB 확장을 구성하는 경우 127001http://...:8000/recent_movies/ 로 이동할 수 있습니다. 요청 중에 실행된 MongoDB 쿼리를 확인합니다.
장고 디버그 도구 모음이 페이지 오른쪽에 나타납니다. MQL 레이블을 선택하면 다음 코드와 유사한 최근 영화를 표시하는 데 사용된 MongoDB 쿼리 볼 수 있습니다.
db.movies.aggregate([{'$addFields': {'released': '$released'}}, {'$sort': SON([('released', -1)])}, {'$limit': 5}])
그런 다음 다음 버튼을 클릭하여 쿼리 정보를 탐색할 수 있습니다.
쿼리 왼쪽에 있는 + 버튼을 선택하면 다음 코드와 유사한 트레이스백을 볼 수 있습니다.
/path/to/site-packages/django/contrib/staticfiles/handlers.py in __call__(80) return self.application(environ, start_response) /path/to/djangoquickstart/sample_mflix/views.py in recent_movies(11) return render(request, "recent_movies.html", {"movies": movies}) /path/to/site-packages/django/shortcuts.py in render(25) content = loader.render_to_string(template_name, context, request, using=using) ... ACTION 열에서 쿼리 오른쪽에 있는 Query 버튼을 선택하면 예쁘게 인쇄된 MQL 볼 수 있습니다. 이 MQL 다음 코드와 유사합니다.
db.movies.aggregate( [ { "$addFields": { "released": "$released" } }, { "$sort": { "released": -1 } }, { "$limit": 5 } ] ) ACTION 열에서 쿼리 오른쪽에 있는 Explain 버튼을 선택하면 쿼리 에 대한 설명 계획을 볼 수 있습니다. 이 계획은 다음 코드와 유사합니다.
{ "explainVersion": "1", "stages": [ { "$cursor": { "queryPlanner": { ... }, "executionStats": { ... } }, "nReturned": 21351, "executionTimeMillisEstimate": 59 }, { "$addFields": { "released": "$released" }, "nReturned": 21351, "executionTimeMillisEstimate": 70 }, { "$sort": { "sortKey": { "released": -1 }, "limit": 5 }, ... } ], ... }
다음 단계
장고 디버그 툴바 튜토리얼을 완료한 것을 축하합니다! 이제 Django MongoDB Extensions를 사용하여 장고 디버그 툴바에서 MongoDB 쿼리를 보고 분석할 수 있는 장고 애플리케이션이 있습니다.
Django MongoDB 확장 패키지 에 대해 자세히 학습 PyPI의 django-mongodb-extensions 및 GitHub의 django-mongodb-extensions 리포지토리 참조하세요.
데이터를 쿼리하는 방법을 배우려면 쿼리 지정 가이드를 참조하세요.