हैं यहाँ इस सवाल का एक "आधुनिक" इस सवाल का जवाब है। मैंने एक उत्पादन उबंटू 16.04 सर्वर पर Django 1.11 को सफलतापूर्वक तैनात किया जो किसी अन्य सर्वर पर चल रहे एमएस एसक्यूएल सर्वर 2017 से कनेक्ट होता है।
पहले, देशी एमएस ODBC ड्राइवर "ODBC ड्राइवर 17 एसक्यूएल सर्वर के लिए" स्थापित करें:
# https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server#ubuntu-1404-1604-and-1710
sudo su
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssql-release.list
apt-get update
ACCEPT_EULA=Y apt-get install msodbcsql
apt-get install unixodbc-dev
# test you can actually get to port 1433 on the server that is running MS SQL:
nc -z -v -w5 host.where.sql.server.is.running.com 1433
# add /opt/mssql-tools/bin to your PATH in .bash_profile, e.g.:
# PATH="$HOME/bin:$HOME/.local/bin:/opt/mssql-tools/bin:$PATH"
# source ~/.bash_profile
# now, test that you can actually connect to MS SQL Server:
sqlcmd -S host.where.sql.server.is.running.com -U db_username -P db_password
दूसरा, सुनिश्चित करें कि आप pip install
इन मॉड्यूल:
# https://github.com/michiya/django-pyodbc-azure
django-pyodbc-azure==1.11.9.0
# https://github.com/mkleehammer/pyodbc/wiki
pyodbc==4.0.22
तीसरा, डेटाबेस प्रविष्टि को संशोधित आपके Django settings.py
:
DATABASES = {
'default': {
'ENGINE': 'sql_server.pyodbc',
'NAME': 'db_name',
'USER': 'db_username',
'PASSWORD': 'db_password',
'HOST': 'host.where.sql.server.is.running.com',
'PORT': '1433',
'OPTIONS': {
'driver': 'ODBC Driver 17 for SQL Server',
},
},
}
मैं टी छोड़ रहा हूँ वह मेरी बाकी कॉन्फ़िगरेशन (nginx, Gunicorn, Django REST Framework, आदि), लेकिन यह इस उत्तर के दायरे से बाहर है।
'adodbapi' के लिए धन्यवाद - यह मेरे लिए एक नया था। –
django-mssql adodbapi का एक कांटा का उपयोग करता है और संग्रहित प्रक्रियाओं का समर्थन करता है। – Manfre
आप SQLServer संग्रहीत प्रक्रियाओं से उन्हें इस तरह कॉल करके परिणाम प्राप्त कर सकते हैं: 'cursor.execute ('DECLARE @results int; EXEC @ results = spMyProc; SELECT @results')' –