Django 2.0+ и вопрос интерфейса SQL Server - PullRequest
0 голосов
/ 02 февраля 2019

Почему необходимо установить 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 Ответ

0 голосов
/ 02 февраля 2019

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: переводит методы ORM Django в необработанный SQL.
  • pyodbc: мост к unixODBC из Python
  • unixODBC библиотека для связи ODBC на * nix.
  • freetds или msodbc: мост драйвера от unixODBC кSQL Server.
...