2015-09-23 20 views
5

Chciałem użyć SQL Server jako zaplecza dla Django, ale otrzymałem to podczas debugowania projektu WWW. "sql_server.pyodbc" nie jest dostępnym zapleczem bazy danych. Wystąpił błąd: brak modułu o nazwie sql_server.pyodbc.base.Brak modułu o nazwie sql_server.pyodbc.base

Python Environments (Python 2.7) z Django (1.7), pyodbc (3.0.10), pywin32 (218.3). A oto moje ustawienia.py:

DATABASES = { 
'default': { 
    'ENGINE': 'sql_server.pyodbc', 
    'NAME': 'DatabaseName', 
    'USER': 'user', 
    'PASSWORD': 'pwd', 
    'HOST': '127.0.0.1', 
    'PORT': '', 
    'OPTIONS': { 
     'driver': 'SQL Server Native Client 11.0', 
     'server': 'ServerName', 
     'MARS_Connection': True, 
     'dsn': 'MSSQL-PYTHON', 
     }, 
    } 
} 

Odpowiedz

10

Nie zainstalowałeś pakietu z wymaganym backendem DB.

uwagi:

pip install django-pyodbc 
pip install django-pyodbc-azure 

Zobacz ten doc i this one.

Przykładem ustawień bazy danych z drugiego linku:

DATABASES = { 
'default': { 
    'ENGINE': 'sql_server.pyodbc', 
    'NAME': 'mydb', 
    'USER': '[email protected]', 
    'PASSWORD': 'password', 
    'HOST': 'myserver.database.windows.net', 
    'PORT': '', 

    'OPTIONS': { 
     'driver': 'SQL Server Native Client 11.0', 
    }, 
    }, 
} 

#set this to `False` if you want to turn off pyodbc's connection pooling: 
DATABASE_CONNECTION_POOLING = False 
+1

Zainstalowałem django-pyodbc zgodnie z sugestią, chociaż już istnieje pyodbc. Dało mi to ten sam błąd. – Zerubbabel

+1

Wygląda na to, że nie masz odpowiedniego pakietu backendu. Czy próbowałeś [tego] (https://pypi.python.org/pypi/django-pyodbc-azure/1.8.3.0)? – Ivan

+0

Podany przez ciebie link o django-pyodbc-azure 1.8.3.0 faktycznie rozwiązał problem. W jakiś sposób, gdy go zainstalowałem, zaktualizował również moje Django do wersji 1.8.4. Więc myślę, że dopasowanie wersji naprawdę ma znaczenie. Zaktualizuj swoją odpowiedź, aby ją zaakceptować. Dziękuję Ci bardzo! – Zerubbabel

0

Spójrz na this link:

DATABASES = { 
    'default': { 
     'NAME': 'my_database', 
     'ENGINE': 'sqlserver_ado', 
     'HOST': 'dbserver\\ss2008', 
     'USER': '', 
     'PASSWORD': '', 
    } 
} 

Podobno można użyć SQL Server z Django MSSQL (link powyżej). możesz sprawdzić [dokumentację Django], aby zobaczyć, jakie inne wsparcie dla django dla baz danych obsługuje "natywnie". (https://docs.djangoproject.com/en/1.8/ref/settings/#databases)