Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Este artigo é a referência completa settings.py de configuração para o mssql-django backend da base de dados Django. Configure a conectividade do SQL Server editando o DATABASES dicionário no ficheiro do settings.py seu projeto Django.
Configuração mínima
O exemplo seguinte mostra a configuração mínima necessária para o caminho padrão pyodbc :
DATABASES = {
"default": {
"ENGINE": "mssql",
"NAME": "<your-database>",
"USER": "<your-username>",
"PASSWORD": "<your-password>",
"HOST": "<your-server>",
"PORT": "1433",
"OPTIONS": {
"driver": "ODBC Driver 18 for SQL Server",
},
},
}
Para executar o alias mssql-python , defina python_driver e omita driver. O mssql-python percurso ignora driver:
DATABASES = {
"default": {
"ENGINE": "mssql",
"NAME": "<database>",
"USER": "<user_id>",
"PASSWORD": "<password>",
"HOST": "<server>",
"PORT": "1433",
"OPTIONS": {
"python_driver": "mssql_python",
},
},
}
ENGINE mantém-se "mssql" em ambos os caminhos. Os alias no mesmo projeto podem usar drivers diferentes. Para a lista completa de diferenças de comportamento, consulte Selecionar o driver da base de dados para mssql-django.
Salvo indicação, os exemplos no resto deste artigo mostram o caminho padrão pyodbc .
Definições de ligação à base de dados
Estas definições configuram a sua DATABASES ligação. A maioria são configurações padrão de Django; São anotadas exceções:
| Setting | Tipo | Description |
|---|---|---|
ENGINE |
String | Deve ser "mssql". |
NAME |
String | Nome do banco de dados. Required. |
HOST |
String | Nome do host do servidor ou endereço IP. Use "server\\instance" o formato para instâncias nomeadas. |
PORT |
String | Porta de instância de servidor. String vazia significa porta padrão. |
USER |
String | Nome de usuário do banco de dados. Se não for concedido, é utilizado o Windows Integrated Security. |
PASSWORD |
String | Palavra-passe do utilizador da base de dados. |
AUTOCOMMIT |
booleano | Definido para False desativar a gestão de transações do Django. A predefinição é True. |
Trusted_Connection |
String | Definido para "yes" (por defeito) para usar o Windows Integrated Security quando USER não for fornecido. Quando USER e PASSWORD ambos são definidos, essas credenciais têm prioridade e Trusted_Connection são ignoradas. Defina para "no" desativar explicitamente a Windows authentication. Isto é uma mssql-django extensão, não uma configuração padrão do Django. |
TOKEN |
String | Token de acesso para autenticação Microsoft Entra (por exemplo, via azure.identity). Isto é uma mssql-django extensão, não uma configuração padrão do Django. |
Definições TEST
Estas definições controlam a base de dados de testes usada pelo executor de testes do Django:
| Setting | Tipo | Description |
|---|---|---|
NAME |
String | Nome da base de dados de teste. Padrão: "test_" + NAME. |
COLLATION |
String | Compilação para a base de dados de testes. Padrão: instância por defeito. |
DEPENDENCIES |
Lista | Dependências da ordem de criação da base de dados. |
MIRROR |
String | Alias de uma base de dados para espelhar durante os testes. |
Example:
DATABASES = {
"default": {
"ENGINE": "mssql",
"NAME": "<your-database>",
"USER": "<your-username>",
"PASSWORD": "<your-password>",
"HOST": "<your-server>",
"PORT": "1433",
"OPTIONS": {
"driver": "ODBC Driver 18 for SQL Server",
},
"TEST": {
"NAME": "test_mydb",
"COLLATION": "SQL_Latin1_General_CP1_CI_AS",
},
},
}
OPÇÕES
O OPTIONS dicionário fornece uma configuração específica para o backend. Coloque estas definições dentro do DATABASES["default"]["OPTIONS"] dicionário:
| Option | Tipo | Predefinição | Description |
|---|---|---|---|
python_driver |
String | Não definido | Defina para "mssql_python" ligar este alias através do mssql-python driver. Não define ou "pyodbc" mantém o driver padrão pyodbc . Consulte Selecionar o driver da base de dados para mssql-django. |
driver |
String | "ODBC Driver 18 for SQL Server" |
Driver ODBC para usar. Automaticamente volta ao Driver 17 se o 18 não estiver instalado. Ignorado no mssql-python caminho. |
isolation_level |
String | None |
Nível de isolamento de transações: READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ, SNAPSHOT, ou SERIALIZABLE. |
dsn |
String | None |
Chamado DSN. Pode ser usado em vez de HOST. Ignorado no mssql-python caminho. |
host_is_server |
booleano | False |
Defina para True usarHOST/PORTdiretamente com o FreeTDS em vez de um freetds.conf nome de servidor de dados. Ignorado no mssql-python caminho. |
unicode_results |
booleano | False |
Ativa a funcionalidade do unicode_results pyodbc. Ignorado no mssql-python caminho. |
extra_params |
String | None |
Parâmetros adicionais de cadeia de ligação no "param=value;param=value" formato. Usado para autenticação Microsoft Entra. O mssql-python caminho valida estes perante uma lista de autorização. |
collation |
String | None |
Colação para consultas de campos de texto (por exemplo, "Chinese_PRC_CI_AS"). |
connection_timeout |
Integer | 0 |
Tempo limite da ligação em segundos (0 = desativado). Use pelo menos 60 para Base de Dados SQL do Azure serverless com auto-pausa ativada. Uma base de dados em pausa automática recomeça na primeira tentativa de ligação, e essa tentativa pode falhar com o erro 40613 enquanto a base de dados recomeça, pelo que a aplicação tem de tentar novamente. Para mais informações, veja Pausa automática e retomada automática. |
connection_retries |
Integer | 5 |
Número de tentativas de retentativa de ligação. |
connection_retry_backoff_time |
Integer | 5 |
Tempo de recuo em segundos entre tentativas. |
query_timeout |
Integer | 0 |
Consulta de tempo limite em segundos (0 = desativado). |
setencoding / setdecoding |
Lista | None |
A codificação e a configuração de decodificação passaram para os métodos de ligação do driver selecionado. Cada setdecoding entrada precisa de uma sqltype chave em ambos os caminhos, e a mesma entrada funciona em qualquer um dos drivers.
mssql-python aceita -99 por SQL_WMETADATA, e pyodbc rejeita-o. Veja a referência de codificação e decodificação pyodbc. |
return_rows_bulk_insert |
booleano | False |
Permitir que as filas retornem a partir da inserção em massa. Deve ser False se as tabelas tiverem gatilhos. |
datefirst |
Integer | 7 |
Primeiro dia da semana para SET DATEFIRST.
7é domingo (padrão SQL Server), 1 é segunda-feira. |
driver_needs_utf8 |
Opção apenas de presença | Não definido | Ative a codificação UTF-8 para o driver ODBC. Esta opção é ativada quando a chave está presente em OPTIONS; o valor em si é ignorado. Normalmente é necessário com FreeTDS ou configurações antigas de unixODBC que por defeito são Latin-1. |
driver_charset |
String | None |
Conjunto de caracteres explícito para o driver ODBC (por exemplo, "UTF-8"). Use quando driver_needs_utf8 o driver não detetar automaticamente a codificação. |
connection_recovery_interval_msec |
Flutuar | 0.0 |
Milissegundos para esperar entre tentativas de retentativa no ciclo de recuperação de ligação do backend após um erro de rede. Aumente este valor para ligações de rede instáveis. |
Exemplo com opções comuns:
DATABASES = {
"default": {
"ENGINE": "mssql",
"NAME": "<your-database>",
"USER": "<your-username>",
"PASSWORD": "<your-password>",
"HOST": "<your-server>.database.windows.net",
"PORT": "1433",
"OPTIONS": {
"driver": "ODBC Driver 18 for SQL Server",
"extra_params": "Encrypt=yes",
"isolation_level": "READ COMMITTED",
"connection_timeout": 30,
"connection_retries": 3,
"connection_retry_backoff_time": 5,
"query_timeout": 60,
},
},
}
Definições específicas do backend
Esta configuração é colocada ao nível do módulo em settings.py, fora do DATABASES dicionário:
| Setting | Tipo | Predefinição | Description |
|---|---|---|---|
DATABASE_CONNECTION_POOLING |
booleano | True |
Defina para False desativar o pooling de ligações ao nível do driver. Aplica-se tanto pyodbc a como mssql-pythona . |
Example:
DATABASES = {
"default": {
"ENGINE": "mssql",
"NAME": "<your-database>",
"USER": "<your-username>",
"PASSWORD": "<your-password>",
"HOST": "<your-server>",
"PORT": "1433",
"OPTIONS": {
"driver": "ODBC Driver 18 for SQL Server",
},
},
}
# Set this to False to disable driver-level connection pooling
DATABASE_CONNECTION_POOLING = False