DjangoがSQL Serverに接続する-django / sql_server-pyodbc


8

インストールしようとしましたdjango_pyodbcが、移行しようとするとエラーが発生しました:

django.core.exceptions.ImproperlyConfigured:Django 2.1はサポートされていません。

私のsetttings.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-pyodbc-azureをインストールしようとすると、他のエラーが発生しました。

「django.db.backends.XXX」を使用してみてください。XXXは「mysql」、「oracle」、「postgresql」、「sqlite3」のいずれかです。

私のsetttings.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に接続するにはどうすればよいですか?


2
これは、すでにここで回答されていますstackoverflow.com/questions/842831/...を
グレゴリー

回答:


2

この問題を長い間探していました。

誰も本当に詳細を教えてくれないので本当にうんざりしているので、この質問に直面しようとしている人々を助けるために書き留めておきたいのです。

Djangoでpyodbcを実行できるようにするには、次の生成を行う必要があることがわかりました。

1.最初に「SQL Server用ODBCドライバー11をインストールしてpyodbcをインストール」

  1. 私のサーバーはODBCドライバー11を使用してデータを抽出しているため、17から11に切り替える必要があります

  2. ターミナルでpip install pyodbcを実行します。

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 = []
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.