为什么需要同时安装 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 配合使用。在尝试查询我使用 检查db 反映的某些模型时,我不断遇到分段错误。
我正在使用的 Linux 版本是 openSUSE 42.1我正在使用的 Sql Server 版本是 2014。
django-pyodbc-azure
是Django引擎,它将Django ORM方法转换为原始SQL(以及其他函数)。 pyodbc
允许 Python 通过特定于数据库的驱动程序unixODBC
对数据库运行原始 SQL 查询。所有数据库后端也是如此;它们有一个Django引擎和一个协同工作的Python包。例如,对于PostgreSQL,它使用包含的Django postgresql
引擎,该引擎与psycopg2
Python包一起使用。
在 SQL Server 的堆栈中,pyodbc
通过unixODBC
和freetds
或msodbc
Microsoft驱动程序进行通信。翻译有几层。
堆栈,从 Web 服务器到 SQL Server 的数据库服务器:
-
django-pyodbc-azure
:将Django的ORM方法翻译成原始SQL。 -
pyodbc
: 从 Python 到 unixODBC 的桥梁 -
unixODBC
*nix 上的 ODBC 通信库。 -
freetds
或msodbc
:从unixODBC到SQL Server的驱动程序桥。