Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a cikk a Django adatbázis háttérrendszerének teljes settings.py konfigurációs hivatkozása mssql-django . Konfiguráld az SQL Server kapcsolatot úgy, hogy szerkeszted a Django projekt DATABASES fájljában lévő settings.py szótárt.
Minimális konfiguráció
Az alábbi példa mutatja az alapértelmezett pyodbc út minimális szükséges konfigurációját:
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",
},
},
}
Ha helyette az álnevet mssql-python futtatod, állítsd python_driver be és hagyd driverki . Az út mssql-python figyelmen kívül driverhagyja:
DATABASES = {
"default": {
"ENGINE": "mssql",
"NAME": "<database>",
"USER": "<user_id>",
"PASSWORD": "<password>",
"HOST": "<server>",
"PORT": "1433",
"OPTIONS": {
"python_driver": "mssql_python",
},
},
}
ENGINE mindkét úton marad "mssql" . Ugyanabban a projektben szereplő aliasok különböző illeszőröket használhatnak. A viselkedésbeli különbségek teljes listájáért lásd: Válassza ki az mssql-django adatbázis-meghajtóját.
Ha nem említik, a cikk többi részében szereplő példák az alapértelmezett pyodbc útvonalat mutatják.
Adatbázis-kapcsolati beállítások
Ezek a beállítások konfigurálják a DATABASES kapcsolatodat. A legtöbb szabványos Django világ; Kivételek szerepelnek:
| Setting | Típus | Description |
|---|---|---|
ENGINE |
String | Kell lennie "mssql". |
NAME |
String | Adatbázis neve. Szükséges. |
HOST |
String | Szerver hosztnév vagy IP-cím. Használj "server\\instance" formátumot a nevelt példányokhoz. |
PORT |
String | Szerver példány port. Az üres string alapértelmezett portot jelent. |
USER |
String | Adatbázis felhasználóneve. Ha nincs megadva, akkor a Windows Integrált Biztonságot használják. |
PASSWORD |
String | Adatbázis felhasználói jelszó. |
AUTOCOMMIT |
logikai | Beállítás False , hogy Django tranzakciókezelését letiltsd. Az alapértelmezett érték True. |
Trusted_Connection |
String | Állítsd "yes" be (alapértelmezett) módra, hogy használd a Windows Integrált Biztonságot, ha USER nincs megadva. Ha USER és PASSWORD mindkettő be van állítva, ezek a hitelesítések elsőbbséget vesznek fel, és Trusted_Connection figyelmen kívül hagyják. Állítsd be a "no" Windows authentication explicit letiltására. Ez egy mssql-django kiterjesztés, nem egy szokásos Django beállítás. |
TOKEN |
String | Hozzáférési token a Microsoft Entra hitelesítéshez (például a ).azure.identity Ez egy mssql-django kiterjesztés, nem egy szokásos Django beállítás. |
TESZT beállítások
Ezek a beállítások irányítják a Django tesztfutója által használt tesztadatbázist:
| Setting | Típus | Description |
|---|---|---|
NAME |
String | Tesztadatbázis név. Alapértelmezett: "test_" + NAME. |
COLLATION |
String | A tesztadatbázis összeállítása. Alapértelmezett: instance default. |
DEPENDENCIES |
Lista | Az adatbázis létrehozási sorrendi függőségei. |
MIRROR |
String | Egy adatbázis alias-a, amelyet tesztelés közben tükrözni lehet. |
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",
},
},
}
LEHETŐSÉGEK
A OPTIONS szótár backend-specifikus konfigurációt biztosít. Helyezd DATABASES["default"]["OPTIONS"] el ezeket a beállításokat a szótárban:
| Option | Típus | Alapértelmezett | Description |
|---|---|---|---|
python_driver |
String | Nincs beállítva | Úgy állítom, hogy "mssql_python" ezt az alias-t a mssql-python meghajtón keresztül csatlakoztatjam. Nem állítom be vagy "pyodbc" tartja meg az alapértelmezett pyodbc drivert. Lásd: Válassza ki az mssql-django adatbázis illesztőprogramját. |
driver |
String | "ODBC Driver 18 for SQL Server" |
ODBC illezőprogramot kell használni. Automatikusan visszakerül a 17-es meghajtóra, ha a 18-as nincs telepítve. Az úton figyelmen kívül mssql-python hagyták. |
isolation_level |
String | None |
Tranzakcióelkülönítési szint: READ UNCOMMITTED, READ COMMITTED, REPEATABLE READSNAPSHOTvagy SERIALIZABLE. |
dsn |
String | None |
DSN-nek hívják. Használható helyette.HOST Az úton figyelmen kívül mssql-python hagyták. |
host_is_server |
logikai | False |
Úgy állítom, hogy True közvetlenül a FreeTDS-szel használjamHOST/PORTaz adatszerver freetds.conf név helyett. Az úton figyelmen kívül mssql-python hagyták. |
unicode_results |
logikai | False |
Aktiváld a unicode_results pyodbc funkcióját. Az úton figyelmen kívül mssql-python hagyták. |
extra_params |
String | None |
További kapcsolati karakterlánc paraméterek formátumban"param=value;param=value".
Microsoft Entra hitelesítéshez használva. Az mssql-python út ezeket egy engedélyezett lista ellen igazolja. |
collation |
String | None |
Szövegmező lekérdezésekhez való összeállítás (például, "Chinese_PRC_CI_AS"). |
connection_timeout |
Integer | 0 |
Kapcsolat időkorlátja másodpercekben (0 = letiltva). Használj legalább 60-at Azure SQL Database szerver nélküli rendszerhez automatikus szünetelés engedélyezve. Az automatikusan szüneteltetett adatbázis az első csatlakozási kísérletkor újraindul, és ez a kísérlet 40613-as hibával meghiúsulhat, miközben az adatbázis újraindul, ezért az alkalmazásnak újra kell próbálkoznia. További információkért lásd: Automatikus szüneteltetés és automatikus folytatás. |
connection_retries |
Integer | 5 |
A kapcsolat újrapróbálkozásának száma. |
connection_retry_backoff_time |
Integer | 5 |
A visszalépési idő másodpercekben a próbálkozások között. |
query_timeout |
Integer | 0 |
Lekérdezés időtúllépése másodpercekben (0 = letiltva). |
setencoding / setdecoding |
Lista | None |
A kódolás és dekódolás konfigurációja a kiválasztott illesztőprogramhoz tartozó csatlakozási módszerekhez került. Minden setdecoding belépéshez mindkét útvonalon kell kulcs sqltype , és ugyanaz a bejegyzés mindkét vezetőre érvényes.
mssql-python elfogadja -99SQL_WMETADATA, és pyodbc elutasítja. Lásd a pyodbc kódolási és dekódolási hivatkozást. |
return_rows_bulk_insert |
logikai | False |
Engedd meg a sorok visszatérését a tömeges behelyezésből. Biztosan van False , ha a tábláknak vannak triggerjei. |
datefirst |
Integer | 7 |
A hét első napja .SET DATEFIRST
7vasárnap (SQL Server alapértelmezett), 1 hétfő. |
driver_needs_utf8 |
Csak jelenlét-opció | Nincs beállítva | Engedélyezze az UTF-8 kódolást az ODBC illezőgéphez. Ez az opció akkor van engedélyezve, ha a kulcs jelen van ; OPTIONSaz értéket figyelmen kívül hagyjuk. Általában FreeTDS vagy régebbi unixODBC konfigurációknál szükséges, amelyek alapértelmezetként Latin-1-et használnak. |
driver_charset |
String | None |
Explicit karakterkészlet az ODBC illezőprogramhoz (például "UTF-8"). Használd akkor is driver_needs_utf8 , amikor a meghajtó nem érzékeli automatikusan a kódolást. |
connection_recovery_interval_msec |
Lebegés | 0.0 |
Milliszekundumok várakozásra a háttérrendszer kapcsolat helyreállítási ciklusában hálózati hiba után. Növeld ezt az értéket instabil hálózati kapcsolatok esetén. |
Példa a gyakori opciókkal:
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,
},
},
}
Backend-specifikus beállítások
Ez a beállítás a modul szintjén van a settings.pyszótáron kívül DATABASES :
| Setting | Típus | Alapértelmezett | Description |
|---|---|---|---|
DATABASE_CONNECTION_POOLING |
logikai | True |
Állítsd be, False hogy letiltsd az illesztőszintű csatlakozási poolingot. Ez mind pyodbc a és 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