连接 Django 和 MSSQL 服务器

新手上路,请多包涵

我正在尝试将我的 Django 应用程序连接到 SQL Server 2016。我尝试使用 django-pyodbc,但它不支持 Django 1.11。相反,我安装了 django-mssql 1.8。当我尝试运行该应用程序时出现此错误。

 TypeError was unhandled by user code
Message: 'NoneType' object is not callable

execute_from_command_line(sys.argv) 在 manage.py 中。

这是来自 settings.py 的数据库:

 DATABASES = {
    'default': {
        'ENGINE': 'sqlserver_ado',
        'NAME': 'TEST2',
        'HOST': 'PCNAME\SQLEXPRESS',
        'USER': '',
        'PASSWORD': '',
        'OPTIONS' : {
            'provider': 'SQLOLEDB',
            'use_mars': True,
        },
    }
}

我已经尝试了默认提供程序和 SQLOLEDB 提供程序,但总是得到相同的错误。我也尝试过设置和不设置用户和密码,但错误仍然存在。我能够很好地连接到本地 MySQL 数据库。

我正在运行 Windows 10、Visual Studio 2015、SQL Server Express 2016

编辑:

这是 pip freeze 的输出:

 appdirs==1.4.3
Django==1.11
django-mssql==1.8
mysqlclient==1.3.10
packaging==16.8
pyodbc==4.0.16
pyparsing==2.2.0
pytz==2017.2
six==1.10.0

这是我的 requirements.txt:

 django==1.11
mysqlclient==1.3.10
django-mssql==1.8

原文由 user1424311 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 528
2 个回答

django-mssql 文档 中所述,最新版本仅支持 Django 1.8,因此不适用于 Django 1.11。

您必须等到软件包支持更新版本的 django 才能升级。这就是将 Django 与不受支持的数据库后端一起使用时的问题,你依赖于第三方包维护,而这个似乎很难与 Django 保持同步。

原文由 rparent 发布,翻译遵循 CC BY-SA 3.0 许可协议

按照官方的 django 文档(目前是 django 3.1),应该使用 django-mssql-backendDjango-MSSQL-backend django 数据库适配器是 django-pyodbc-azure 的一个分支,其中:

  • 支持 Django 2.2、3.0
  • 支持 Microsoft SQL Server 2008/2008R2、2012、2014、2016、2017、2019
  • 与 Micosoft ODBC Driver for SQL Server、SQL Server Native Client 和 FreeTDS ODBC 驱动程序兼容

截至 2020-11 年,其他解决方案 django-pyodbc-azuredjango-sqlserverdjango-mssql 看起来已过时。

原文由 Robert Lujo 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题