2015-09-23 23 views
5

Volevo utilizzare SQL Server come backend per Django, ma l'ho ottenuto durante il debug del progetto web. 'sql_server.pyodbc' non è un back-end del database disponibile. Errore: Nessun modulo chiamato sql_server.pyodbc.base.Nessun modulo denominato sql_server.pyodbc.base

Python Environments (Python 2.7) con Django (1.7), pyodbc (3.0.10), pywin32 (218.3). Ed ecco il mio 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', 
     }, 
    } 
} 

risposta

10

Non è stato installato il pacchetto con il DB backend richiesto.

fare:

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

Vai a questa doc e this one.

Un esempio delle impostazioni del database del secondo 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

Ho installato django-pyodbc come suggerito, anche se c'è già un pyodbc. Mi ha dato lo stesso errore. – Zerubbabel

+1

Sembra che tu non abbia ancora il giusto pacchetto di back-end. Hai provato [questo] (https://pypi.python.org/pypi/django-pyodbc-azure/1.8.3.0)? – Ivan

+0

Il link che hai fornito su django-pyodbc-azure 1.8.3.0 ha effettivamente risolto il problema. In qualche modo quando l'ho installato, ha aggiornato anche il mio Django alla 1.8.4. Quindi credo che l'abbinamento alla versione sia davvero importante. Si prega di aggiornare la risposta in modo che io possa accettarlo. Grazie mille! – Zerubbabel

0

Date un'occhiata a this link:

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

Presumibilmente è possibile utilizzare SQL Server con Django MSSQL (link qui sotto). potresti voler controllare la [documentazione di Django] per vedere quale altro supporto di database supporta django "in modo nativo". (https://docs.djangoproject.com/en/1.8/ref/settings/#databases)

Problemi correlati