Нет модуля с именем sql_server.pyodbc.base
Я хотел использовать SQL Server в качестве бэкэнда для Django, но получил это при отладке веб-проекта. 'sql_server.pyodbc' не является доступной серверной частью базы данных. Ошибка была: нет модуля с именем sql_server.pyodbc.base.
Среды Python (Python 2.7) с Django (1.7), pyodbc(3.0.10), pywin32(218.3). А вот мой 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',
},
}
}
2 ответа
Вы не установили пакет с необходимым бэкэндом БД.
Делать:
pip install django-pyodbc
pip install django-pyodbc-azure
Смотрите этот документ и этот.
Пример настроек базы данных по второй ссылке:
DATABASES = {
'default': {
'ENGINE': 'sql_server.pyodbc',
'NAME': 'mydb',
'USER': 'user@myserver',
'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
Посмотрите на эту ссылку:
DATABASES = {
'default': {
'NAME': 'my_database',
'ENGINE': 'sqlserver_ado',
'HOST': 'dbserver\\ss2008',
'USER': '',
'PASSWORD': '',
}
}
Предположительно, вы можете использовать SQL Server с Django MSSQL (ссылка выше). Возможно, вы захотите проверить [документацию Django], чтобы увидеть, какую поддержку других баз данных поддерживает django "изначально". ( https://docs.djangoproject.com/en/1.8/ref/settings/)