Django rest framework是基于Django的强大灵活的扩展,可用于创建Web接口。Django对于PostgreSQL,MySQL,SQLite,Oracle的支持都比较好,但对MS SQLServer却相对比较麻烦。本文记录了成功集成(连接)SQLServer的方法,据此可以免去很多弯路。

问题

首先,当前(2018年4月)djangorestframework的最新版本是3.8.2,这个版本的需求是:Python (2.7, 3.2, 3.3, 3.4, 3.5, 3.6)和Django (1.10, 1.11, 2.0)。

当前(2018年4月)Django的最新版本是2.0.4。所以djangorestframework 3.8.2和Django 2.0.4集成是没有问题的。

但是第三方数据库支持组件 django-mssql最新版本是v1.8,只支持 Django 1.8。这是短板。

集成方案

使用django-mssql最新版本v1.8。

Django选用1.8.19。为1.8的最后一个版本。

支持django 1.8的djangorestframework的最高版本为3.4.7,这是 从github查到的3.4系统的最后一个版本。

具体安装指令如下:

	pip install django==1.8.19
	pip install django-sqlserver
	pip install djangorestframework==3.4.7
	

配置参数如下:

	'sqlserver': {
        'ENGINE': 'sqlserver_ado',
        'NAME': 'DBNAME',
        'USER': 'user',
        'PASSWORD': 'pass',
        'HOST': '192.168.3.3',
        'PORT': '1433',
        'OPTIONS': {
            'provider': 'SQLOLEDB', # Have also tried 'SQLCLI11' and 'SQLOLEDB'
            'extra_params': 'DataTypeCompatibility=80'
        },
    

另外需要安装SQL Server Management Studio或者Microsoft Data Access Components (MDAC)。