개요
이 튜토리얼에서는 Django 프로젝트 에서 Django MongoDB Extensions 패키지 사용하는 방법을 학습 수 있습니다.
Django MongoDB Extensions는 개발자 도구를 사용하여 Django MongoDB 백엔드를 확장하는 패키지 입니다. 이 튜토리얼에서는 장고 디버그 도구 모음과 함께 사용할 수 있도록 장고 MongoDB 확장의 MongoDB 쿼리 언어(MQL ) 패널을 구성하는 방법을 보여줍니다. 이 패널에는 요청 중에 애플리케이션 실행하는 MQL 쿼리가 실행 시간 및 쿼리 계획과 함께 표시됩니다.
전제 조건
이 튜토리얼을 시작하기 전에 다음 전제 조건 작업을 완료하세요.
장고 MongoDB 백엔드를 사용하는 장고 프로젝트 생성합니다. 프로젝트 만들려면 Django 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 튜토리얼을 완료한 것을 축하합니다! 이제 Django MongoDB Extensions를 사용하여 Django 디버그 도구 모음에서 MongoDB 쿼리를 보고 분석 Django 애플리케이션 생겼습니다.
Django MongoDB 확장 패키지 에 대해 자세히 학습 PyPI의 django-mongodb-extensions 및 GitHub의 django-mongodb-extensions 리포지토리 참조하세요.
데이터를 쿼리 방법을 학습 쿼리 지정 가이드 참조하세요.