Menu Docs

Configure sua conexão de banco de dados

Neste guia, você aprenderá a configurar a conexão do seu projeto Django com o MongoDB.

Após instalar o Django MongoDB Backend e criar um projeto, você poderá configurar sua conexão com o MongoDB das seguintes maneiras:

Dica

Para saber como instalar o Django MongoDB Backend e criar um projeto Django, acesse o tutorial Introdução ao Django MongoDB Backend.

Para configurar manualmente sua conexão com o MongoDB, atualize a variável DATABASES no arquivo settings.py do seu projeto. Defina a variável DATABASES para um valor de dicionário contendo a chave default, como mostrado no seguinte exemplo:

DATABASES = {
"default": {
# Specify nested dictionary keys here
},
}

Para configurar a chave default, atribua um dicionário aninhado como seu valor. Este dicionário aninhado tem as seguintes chaves:

Chave
Descrição

Mecanismo

O driver de backend a ser usado para a conexão. Defina esta chave como "django_mongodb_backend".

Anfitrião

Your connection URI. For localhost connections, this key is optional.
For SRV connections, you must include a scheme prefix (mongodb+srv://).

To specify more than one host, include all hostnames in one string. Use a comma to separate each hostname.
Example: "HOST": "mongodb://mongos0.example.com:27017,mongos1.example.com:27017"

Nome

O banco de dados que você deseja usar.

USUÁRIO

O nome de usuário para autenticar no banco de dados, se sua conexão exigir autenticação.

PASSWORD

A senha do usuário de banco de dados, se a conexão exigir autenticação.

Porta

The port number on which the database server is listening. The default port is 27017.
For MongoDB Atlas connections, this key is optional.

Opções

A dictionary of additional connection options for the database. This key is optional.
To see a full list of connection options that you can set in the OPTIONS key, see the optional parameters for MongoClient in the PyMongo API documentation.

Neste exemplo, a variável DATABASES executa as seguintes ações:

  • Define o banco de dados como my_database

  • Fornece informações de autenticação para um usuário de banco de dados cujo nome de usuário é my_user e senha é my_password

  • Especifica a porta MongoDB padrão (27017)

  • Define a opção de conexão retryWrites como true, que configura o driver para repetir automaticamente determinadas operações de gravação se elas falharem

  • Define a opção de conexão w para majority, que configura o driver para aguardar a confirmação da maioria dos membros do conjunto de réplicas antes de executar operações de gravação

DATABASES = {
"default": {
"ENGINE": "django_mongodb_backend",
"HOST": "mongodb+srv://cluster0.example.mongodb.net",
"NAME": "my_database",
"USER": "my_user",
"PASSWORD": "my_password",
"PORT": 27017,
"OPTIONS": {
"retryWrites": "true",
"w": "majority",
},
},
}

Para construir automaticamente a configuração do DATABASES que configura sua conexão MongoDB , você pode utilizar a função parse_uri(). Esta função aceita os seguintes argumentos:

  • uri: seu URI de conexão do MongoDB .

  • db_name: O nome do banco de dados que você deseja usar.

  • conn_max_age: configura conexões persistentes do banco de dados . Este argumento é opcional. Para saber mais, consulte Conexões persistentes na documentação do Django.

  • test: fornece um dicionário de configurações para bancos de dados de teste. Este argumento é opcional. Para saber mais,consulte a configuração TEST na documentação do Django.

O exemplo a seguir usa a parse_uri() função para especificar a mesma configuração de conexão que o exemplo de configuração manual anterior:

import django_mongodb_backend
MONGODB_URI = "mongodb+srv://my_user:my_password@cluster0.example.mongodb.net/?retryWrites=true&w=majority"
DATABASES["default"] = django_mongodb_backend.parse_uri(MONGODB_URI, db_name="<database name>")

Para visualizar um projeto de exemplo que configura uma conexão de banco de dados MongoDB , consulte a etapa Configurar sua conexão MongoDB no tutorial de Introdução.

Para saber mais sobre as configurações do Django, consulte Configurações na documentação do Django.