개요
이 튜토리얼에서는 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 쿼리 정보를 보십니다.
Django MongoDB 백엔드 시작하기 튜토리얼에서 만든 애플리케이션 에 대해 Django MongoDB Extensions를 구성하는 경우 http://:127.0.0.1 /recent_movies/로8000 이동하여 요청 중에 실행된 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 리포지토리를 참조하세요.
데이터를 쿼리하는 방법을 배우려면 쿼리 지정 가이드를 참조하세요.