Django подключиться к SQL серверу - django / sql_server - pyodbc - PullRequest
8 голосов
/ 26 февраля 2020

Я пытался установить django_pyodbc, но при попытке выполнить миграцию выдает ошибку:

django .core.exceptions.ImproperlyConfigured: Django 2.1 не поддерживается.

Мой расчет.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',
    },
},

Когда я пытаюсь установить django -pyodb c - azure, я получил другую ошибку:

Попробуйте использовать 'django .db.backends.XXX', где XXX является одним из: 'mysql', 'oracle', 'postgresql', 'sqlite3'

Мой поселенец.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',
    },
},

Так что мне делать, чтобы я мог подключиться к SQL Server 2012?

1 Ответ

2 голосов
/ 28 февраля 2020

Я долго искал эту проблему.

Действительно расстраиваюсь, что никто не рассказывает подробности, поэтому я хочу записать, чтобы помочь тем, кто собирается столкнуться с этим вопросом.

Я обнаружил, что должен выполнить следующие действия, чтобы я мог запустить pyodb c в Django.

1. Сначала установите «ODB C Driver 11 для SQL Server & Install pyodb c»

  1. Поскольку мой сервер использует ODB C Driver 11 для извлечения в данные, я должен переключить его с 17 на 11

  2. Запустить pip install pyodb c в терминале

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 = []
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...