Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Эта статья представляет собой полный settings.py справочник по конфигурации для бэкенда базы mssql-django данных Django. Настройте подключение SQL Server, отредактировав DATABASES словарь в файле settings.py вашего проекта Django.
Минимальная конфигурация
Следующий пример показывает минимально требуемую конфигурацию:
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",
},
},
}
Настройки подключения к базе данных
Эти настройки настраивают ваше DATABASES соединение. Большинство из них — стандартные сеттинги Django; Отмечаются исключения:
| Setting | Type | Description |
|---|---|---|
ENGINE |
String | Этот параметр должен содержать значение "mssql". |
NAME |
String | Имя базы данных. Обязательное. |
HOST |
String | Имя хоста или IP-адрес сервера. Используйте "server\\instance" формат для именованных экземпляров. |
PORT |
String | Порт экземпляра сервера. Пустая строка означает порт по умолчанию. |
USER |
String | Имя пользователя базы данных. Если это не указано, используется интегрированная безопасность Windows. |
PASSWORD |
String | Пароль пользователя базы данных. |
AUTOCOMMIT |
Boolean | Настройте на False отключение управления транзакциями Django. По умолчанию — True. |
Trusted_Connection |
String | Установите на "yes" (по умолчанию) для использования интегрированной безопасности Windows, если USER она не предоставляется. Когда USER обе установлены и PASSWORD установлены, эти удостоверения имеют приоритет и Trusted_Connection игнорируются. Установите "no" на явное отключение проверка подлинности Windows. Это расширение mssql-django , а не стандартный сеттинг Django. |
TOKEN |
String | Токен доступа для аутентификации Microsoft Entra (например, через azure.identity). Это расширение mssql-django , а не стандартный сеттинг Django. |
Настройки ТЕСТОВ
Эти настройки управляют базой данных тестов, используемой тестовым раннером Django:
| Setting | Type | Description |
|---|---|---|
NAME |
String | Имя тестовой базы данных. По умолчанию: "test_" + NAME. |
COLLATION |
String | Сравнение для тестовой базы данных. По умолчанию: экземпляр по умолчанию. |
DEPENDENCIES |
List | Зависимости порядка создания базы данных. |
MIRROR |
String | Псевдоним базы данных для зеркалирования во время тестирования. |
Пример:
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",
},
},
}
ПАРАМЕТРЫ
OPTIONS Словарь предоставляет конфигурацию, специфичную для бэкенда. Поместите эти настройки в DATABASES["default"]["OPTIONS"] словарь:
| Опция | Type | По умолчанию | Description |
|---|---|---|---|
driver |
String | "ODBC Driver 18 for SQL Server" |
Драйвер ODBC для использования. Автоматически возвращается к драйверу 17, если 18 не установлен. |
isolation_level |
String | None |
Уровень изоляции транзакций: READ UNCOMMITTED, READ COMMITTED, REPEATABLE READSNAPSHOTили SERIALIZABLE. |
dsn |
String | None |
Назван DSN. Может использоваться вместо HOST. |
host_is_server |
Boolean | False |
Установлен на True использованиеPORTHOST/напрямую с FreeTDS вместо freetds.conf имени сервера данных. |
unicode_results |
Boolean | False |
Активируйте функцию pyodbc unicode_results . |
extra_params |
String | None |
Дополнительные параметры ODBC в "param=value;param=value" формате. Используется для аутентификации Microsoft Entra. |
collation |
String | None |
Колляция для поиска текстовых полей (например, "Chinese_PRC_CI_AS"). |
connection_timeout |
Integer | 0 |
Тайм-аут соединения за секунды (0 = отключено). |
connection_retries |
Integer | 5 |
Количество попыток повторного подключения. |
connection_retry_backoff_time |
Integer | 5 |
Время отступления в секунды между повторами. |
query_timeout |
Integer | 0 |
Тайм-аут запроса за секунды (0 = отключено). |
setencoding / setdecoding |
List | None |
Конфигурация кодирования PYODBC / . |
return_rows_bulk_insert |
Boolean | False |
Разрешите возвращающиеся ряды из оптовой вставки. Должно быть, False если в таблицах есть триггеры. |
datefirst |
Integer | 7 |
Первый день недели для SET DATEFIRST.
7— воскресенье (по умолчанию SQL Server), 1 — понедельник. |
driver_needs_utf8 |
Опция только присутствия | Не установлено | Включите кодирование UTF-8 для драйвера ODBC. Эта опция включается, когда ключ присутствует в OPTIONS; само значение игнорируется. Обычно требуется для FreeTDS или более старых конфигураций unixODBC, которые по умолчанию используют Latin-1. |
driver_charset |
String | None |
Явный набор символов для драйвера ODBC (например, "UTF-8"). Используйте с driver_needs_utf8 моментом, когда драйвер не автоматически определяет кодирование. |
connection_recovery_interval_msec |
Плавать | 0.0 |
Миллисекунды ожидания между попытками повтора в цикле восстановления соединения бэкенда после сетевой ошибки. Увеличьте это значение для нестабильных сетевых соединений. |
Пример с распространёнными вариантами:
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,
},
},
}
Настройки, специфичные для бэкенда,
Эта настройка размещается на уровне модуля в settings.py, вне словаря DATABASES :
| Setting | Type | По умолчанию | Description |
|---|---|---|---|
DATABASE_CONNECTION_POOLING |
Boolean | True |
Установлен на False отключение пула соединений 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",
},
},
}
# Set this to False to disable pyodbc's connection pooling
DATABASE_CONNECTION_POOLING = False