Visão geral
Neste tutorial, você pode aprender como usar o pacote Django MongoDB Extensions em seu projeto Django.
O Django MongoDB Extensions é um pacote que estende o Django MongoDB Backend com ferramentas de desenvolvedor. Este tutorial mostra como configurar o painel MongoDB Query Language (MQL) nas extensões do Django MongoDB para usar com a barra de ferramentas de depuração do Django. Este painel mostra as queries MQL que seu aplicação executa durante uma solicitação, juntamente com os tempos de execução e planos de query.
Pré-requisitos
Antes de iniciar este tutorial, conclua as seguintes tarefas de pré-requisito:
Crie um projeto Django que use Django MongoDB Backend. Para criar um projeto, consulte o tutorial Introduçãoao Backend do MongoDB do Django.
Instale e configure a barra de ferramentas de depuração Django em seu projeto. Para visualizar as instruções, consulte Instalação do na documentação da barra de ferramentas de depuração do Django.
Tutorial
As etapas a seguir mostram como instalar as extensões do MongoDB do Django, configurar o painel MQL e visualizar queries do MongoDB na barra de ferramentas de depuração do Django.
Registre o painel MQL .
Por padrão, a barra de ferramentas de depuração do Django funciona sem exigir uma configuração do DEBUG_TOOLBAR_PANELS. No entanto, como o MongoDB não usa SQL, a configuração mais comum para aplicativos MongoDB é substituir o painel SQL pelo painel MQL . Adicione a seguinte configuração ao seu arquivo settings.py, que define DEBUG_TOOLBAR_PANELS para os valores padrão, mas substitui SQLPanel por 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', ]
Dica
Configurações opcionais
Para saber como definir configurações opcionais que personalizam o comportamento do painel MQL , consulte o README no repositório Django MongoDB Extensions no GitHub.
Verifique o painel MQL .
Inicie seu servidor de desenvolvimento executando o seguinte comando:
python manage.py runserver
Navegue até qualquer página em seu aplicação que consulte o MongoDB. Abra a Barra de Ferramentas de Depuração Django e selecione o painel MQL para visualizar as queries do MongoDB executadas durante a solicitação, incluindo seus tempos de execução e planos explicativos.
Veja sample_mflix.movies informações de query de .
Se você configurar as Extensões do Django MongoDB para o aplicação criado no tutorial Introdução ao Backend do Django MongoDB , poderá navegar até http://:127.0.0.1 8000/recent_movies/ para visualizar as queries do MongoDB executadas durante a solicitação.
A barra de ferramentas de depuração do Django aparece no lado direito da página. Selecione o rótulo MQL para visualizar a consulta MongoDB utilizada para exibir os filmes recentes, que se assemelha ao seguinte código:
db.movies.aggregate([{'$addFields': {'released': '$released'}}, {'$sort': SON([('released', -1)])}, {'$limit': 5}])
Em seguida, você pode explorar as informações da query clicando nos seguintes botões:
Selecione o botão + à esquerda da query para visualizar o rastreamento, que se assemelha ao seguinte código:
/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) ... Selecione o botão Query à direita da query, na coluna ACTION, para visualizar a MQL impressa. Este MQL se assemelha ao seguinte código:
db.movies.aggregate( [ { "$addFields": { "released": "$released" } }, { "$sort": { "released": -1 } }, { "$limit": 5 } ] ) Selecione o botão Explain à direita da query, na coluna ACTION, para visualizar o plano explicativo da query. Este plano se assemelha ao seguinte código:
{ "explainVersion": "1", "stages": [ { "$cursor": { "queryPlanner": { ... }, "executionStats": { ... } }, "nReturned": 21351, "executionTimeMillisEstimate": 59 }, { "$addFields": { "released": "$released" }, "nReturned": 21351, "executionTimeMillisEstimate": 70 }, { "$sort": { "sortKey": { "released": -1 }, "limit": 5 }, ... } ], ... }
Próximos passos
Parabéns por concluir o tutorial Django MongoDB Extensions! Agora você tem um aplicação Django que usa Extensões do MongoDB do Django para visualizar e analisar queries do MongoDB na barra de ferramentas de depuração do Django.
Para saber mais sobre o pacote Django MongoDB Extensions, consulte django-mongodb-extensions no PyPI e o repositório django-mongodb-extentions no GitHub.
Para saber como executar query de seus dados, consulte o guia Especificar uma query.