2015-09-23 10 views
5

Ich wollte SQL Server als Backend für Django verwenden, aber ich habe dies beim Debuggen des Webprojekts. 'sql_server.pyodbc' ist kein verfügbares Datenbank-Backend. Fehler war: Kein Modul namens sql_server.pyodbc.base.Kein Modul namens sql_server.pyodbc.base

Python-Umgebungen (Python 2.7) mit Django (1.7), pyodbc (3.0.10), pywin32 (218.3). Und hier ist meine settings.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', 
     }, 
    } 
} 

Antwort

10

Sie haben das Paket nicht mit dem erforderlichen DB-Backend installiert.

Sie:

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

dieses doc See und this one.

Ein Beispiel für die Datenbankeinstellungen aus dem zweiten Link:

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

Ich installierte Django-Pyodbc wie Sie vorgeschlagen, obwohl es bereits ein Pyodbc ist. Es gab mir den gleichen Fehler. – Zerubbabel

+1

Es scheint immer noch so, als hätten Sie nicht das richtige Backend-Paket. Hast du [diesen] versucht (https://pypi.python.org/pypi/django-pyodbc-azure/1.8.3.0)? – Ivan

+0

Der Link, den Sie über django-pyodbc-azure 1.8.3.0 gegeben haben, löste das Problem tatsächlich. Irgendwie, als ich es installierte, aktualisierte es auch mein Django zu 1.8.4. Also denke ich, dass die Übereinstimmung der Version wirklich wichtig ist. Bitte aktualisieren Sie Ihre Antwort, damit ich sie akzeptieren kann. Vielen Dank! – Zerubbabel

0

einen Blick auf this link Nehmen:

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

Angeblich können Sie SQL Server mit Django MSSQL (Link oben) verwenden. Vielleicht möchten Sie die [Django-Dokumentation] überprüfen, um zu sehen, welche andere Datenbankunterstützung "nativ" von django unterstützt wird. (https://docs.djangoproject.com/en/1.8/ref/settings/#databases)