Django stellt eine Verbindung zu SQL Server her - django / sql_server - pyodbc

8

Ich habe versucht zu installieren, django_pyodbcaber wenn ich versuche, Migrationen durchzuführen, wurde der Fehler angezeigt:

django.core.exceptions.ImproperlyConfigured: Django 2.1 wird nicht unterstützt.

Meine Einstellungen.py:

'Test_DB': {
    'ENGINE': 'django_pyodbc',
    'NAME': 'TEST',
    'HOST': '127.0.0.1',
    'USER': 'sa',
    'PASSWORD': '123456',
    'OPTIONS': {
        'driver': 'ODBC Driver 12 for SQL Server',
    },
},

Beim Versuch, django-pyodbc-azure zu installieren, wurde der andere Fehler angezeigt:

Versuchen Sie es mit 'django.db.backends.XXX', wobei XXX eines der folgenden Elemente ist: 'mysql', 'oracle', 'postgresql', 'sqlite3'

Meine Einstellungen.py:

'Test_DB': {
    'ENGINE': 'sql_server.pyodbc',
    'NAME': 'TEST',
    'HOST': '127.0.0.1',
    'USER': 'sa',
    'PASSWORD': '123456',
    'OPTIONS': {
        'driver': 'ODBC Driver 12 for SQL Server',
    },
},

Was soll ich also tun, damit ich den SQL Server 2012 verbinden kann?

W Kenny
quelle
2
Dies wurde hier bereits beantwortet: stackoverflow.com/questions/842831/…
gregory

Antworten:

2

Ich habe lange nach diesem Problem gesucht.

Ich fühle mich wirklich sauer, dass niemand wirklich die Details erzählt, deshalb möchte ich aufschreiben, um denjenigen zu helfen, die sich dieser Frage stellen wollen.

Ich fand heraus, dass ich die folgenden Produktionen machen sollte, damit ich pyodbc in Django ausführen kann.

1. Installieren Sie zuerst "ODBC-Treiber 11 für SQL Server und installieren Sie pyodbc".

  1. Da mein Server ODBC-Treiber 11 zum Extrahieren in Daten verwendet, sollte ich ihn von 17 auf 11 umstellen

  2. Führen Sie pip install pyodbc im Terminal aus

2. settings.py:

DATABASES = {
'MSSQL':
{
    'ENGINE': 'sql_server.pyodbc',
    'NAME': 'DB_NAME',
    'USER': 'USER',
    'PASSWORD': 'PWD',
    'HOST': 'IP',
    'PORT': '1433',
    'OPTIONS':{
        'driver': 'ODBC Driver 11 for SQL Server',
    },
}

}}

3. views.py:

import pyodbc
from django.conf import settings

connection = pyodbc.connect(
                            "Driver={" + settings.DATABASES['MSSQL']['OPTIONS']['driver'] + "};"
                            "Server=" + settings.DATABASES['MSSQL']['HOST'] + ";"
                            "Database=" + settings.DATABASES['MSSQL']['NAME'] + ";"
                            "UID=" + settings.DATABASES['MSSQL']['USER'] + ";"
                            "PWD=" + settings.DATABASES['MSSQL']['PASSWORD'] + ";"
                            "Trusted_Connection=no;"
                            )

cursor = self.connection.cursor()
query = """SELECT * FROM DB_NAME;"""
cursor.execute(query)
rows = cursor.fetchall()
columns = [column[0] for column in cursor.description]
data = []
W Kenny
quelle