1

为什么需要同时安装 Pyodbc 和 django-pyodbc-azure 才能与 Django 的最新 SQL Server 版本交互?为什么 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。

4

1 回答 1

1

django-pyodbc-azure是 Django 引擎,它将 Django ORM 方法转换为原始 SQL(以及其他函数)。允许 Python 通过特定于数据库的驱动程序pyodbc对数据库运行原始 SQL 查询。unixODBC所有数据库后端也是如此;他们有一个可以协同工作的 Django 引擎和一个 Python 包。例如,对于 PostgreSQL,它使用包含的 Djangopostgresql引擎,该引擎与psycopg2Python 包一起使用。

在 SQL Server 堆栈的更下方,pyodbc通过Microsoft 驱动程序unixODBC或Microsoft 驱动程序freetds进行通信。msodbc翻译有好几层。

堆栈,从您的 Web 服务器到 SQL Server 的数据库服务器:

  • django-pyodbc-azure: 将 Django 的 ORM 方法转换为原始 SQL。
  • pyodbc: 从 Python 到 unixODBC 的桥梁
  • unixODBC*nix 上用于 ODBC 通信的库。
  • freetdsmsodbc:从 unixODBC 到 SQL Server 的驱动程序桥。
于 2019-02-02T00:00:19.170 回答