Django 2.0+ и вопрос интерфейса SQL Server
Почему необходимо установить Pyodbc и django-pyodbc-azure для взаимодействия с последними версиями SQL Server с Django? Почему django не может использовать Pyodbc из коробки? У меня не получается заставить Sql Server нормально играть с python 3.4.5, Django 2.1, pyodbc 4.0+ и Django-Pyodbc-azure 2.0.8. Я продолжаю получать ошибку сегментации, возникающую при попытке запроса определенных моделей, которые я отражал с помощью inspectdb.
Используемая мной версия linux - openSUSE 42.1. Используемая мной версия Sql Server - 2014.
1 ответ
django-pyodbc-azure
это движок Django, который переводит методы Django ORM в необработанный SQL (среди других функций) pyodbc
позволяет Python выполнять необработанные SQL-запросы к базе данных через unixODBC
с драйвером, специфичным для базы данных. То же самое верно для всех бэкэндов БД; у них есть и движок Django, и пакет Python, которые работают вместе. Например, в PostgreSQL он использует включенный Django postgresql
двигатель, который работает с psycopg2
Пакет Python.
Далее вниз по стеку для SQL Server, pyodbc
общается через unixODBC
и либо freetds
или msodbc
Драйвер Microsoft. Есть несколько слоев перевода.
Стек, от вашего веб-сервера до сервера базы данных для SQL Server:
django-pyodbc-azure
: переводит методы Django ORM в необработанный SQL.pyodbc
: мост к unixODBC из PythonunixODBC
библиотека для связи ODBC на *nix.freetds
или жеmsodbc
: драйверный мост от unixODBC к SQL Server.