Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Django MongoDB 확장 시작하기

이 튜토리얼에서는 Django 프로젝트 에서 Django MongoDB Extensions 패키지 사용하는 방법을 학습 수 있습니다.

Django MongoDB Extensions는 개발자 도구를 사용하여 Django MongoDB 백엔드를 확장하는 패키지 입니다. 이 튜토리얼에서는 장고 디버그 도구 모음과 함께 사용할 수 있도록 장고 MongoDB 확장의 MongoDB 쿼리 언어(MQL ) 패널을 구성하는 방법을 보여줍니다. 이 패널에는 요청 중에 애플리케이션 실행하는 MQL 쿼리가 실행 시간 및 쿼리 계획과 함께 표시됩니다.

이 튜토리얼을 시작하기 전에 다음 전제 조건 작업을 완료하세요.

  • 장고 MongoDB 백엔드를 사용하는 장고 프로젝트 생성합니다. 프로젝트 만들려면 Django MongoDB 백엔드 시작하기 튜토리얼을 참조하세요.

  • 프로젝트 에 장고 디버그 툴바를 설치하고 구성합니다. 지침을 보려면 장고 디버그 툴바 문서에서 설치를 참조하세요.

다음 단계에서는 Django MongoDB Extensions를 설치하고, MQL 패널을 구성하고, Django 디버그 도구 모음에서 MongoDB 쿼리를 보는 방법을 보여줍니다.

1

다음 명령을 실행하여 Django MongoDB Extensions를 설치합니다.

pip install django-mongodb-extensions
2

다음 예시 와 같이 프로젝트의 settings.py 파일 로 이동하여 INSTALLED_APPS 설정에 "django_mongodb_extensions" 를 추가합니다.

INSTALLED_APPS = [
'django_mongodb_extensions',
# ... your other apps
]
3

기본값 으로 장고 디버그 도구 모음은 DEBUG_TOOLBAR_PANELS 설정 없이도 작동합니다. 그러나 MongoDB SQL 사용하지 않기 때문에 MongoDB 애플리케이션에서 가장 일반적인 구성은 SQL 패널을 MQL 패널로 교체하는 것입니다. settings.py 파일 에 다음 설정을 추가하면 DEBUG_TOOLBAR_PANELS 가 기본값 으로 설정되지만 SQLPanelMQLPanel로 바뀝니다.

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',
]

선택적 설정

MQL 패널 동작을 사용자 지정하는 선택적 설정을 설정하다 방법을 학습 GitHub의 Django MongoDB 확장 리포지토리 에 있는 README를 참조하세요.

4

다음 명령을 실행 하여 개발 서버 시작합니다.

python manage.py runserver

애플리케이션 에서 MongoDB 쿼리하는 페이지로 이동합니다. 장고 디버그 툴바를 열고 MQL 패널을 선택하여 요청 중에 실행된 MongoDB 쿼리의 실행 시간 및 설명 계획을 포함하여 확인합니다.

5

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}])

그런 다음 다음 버튼을 클릭하여 쿼리 정보를 탐색할 수 있습니다.

  1. 쿼리 왼쪽에 있는 + 버튼을 선택하면 다음 코드와 유사한 트레이스백을 볼 수 있습니다.

    /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)
    ...
  2. ACTION 열에서 쿼리 오른쪽에 있는 Query 버튼을 선택하면 예쁘게 인쇄된 MQL 볼 수 있습니다. 이 MQL 다음 코드와 유사합니다.

    db.movies.aggregate(
    [
    {
    "$addFields": {
    "released": "$released"
    }
    },
    {
    "$sort": {
    "released": -1
    }
    },
    {
    "$limit": 5
    }
    ]
    )
  3. 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 리포지토리 참조하세요.

데이터를 쿼리 방법을 학습 쿼리 지정 가이드 참조하세요.

돌아가기

Queryable Encryption

이 페이지의 내용