Django + MS SqlServer 2008 配置(更新2012)
1. Django连接SqlServer 2008需要依赖以下库:
django-pyodbc, django-pyodbc-azure, django-mssql
安装方法如下:
pip install django-pyodbc
pip install django-pyodbc-azure
pip install django-mssql
Pycharm在项目里解释器里可以添加
2. 添加ODBC:
a.打开`管理工具`,找到`ODBC数据源(64位)`并打开,在`系统DSN`选项卡中点击`添加`,驱动程序选择`SQL server Native Client xx.x`,后面服务器选择`(local)`,一路向前,OK。有的还需要在`用户DSN`选项卡中建立同样的数据源,请注意。
b.Win+R 运行odbcad32打开odbc数据源 在系统dsn中添加数据源 - 选择你电脑安装对应的SQL版本 - 完成 - 填写数据源名称 - 服务器填写 “.” 或local ,后面直接点下一步直到创建完成。
3. 修改数据库配置:
修改项目文件夹下settings.py文件中的数据库的配置文件,如下:
DATABASES = \ { 'default': { 'ENGINE': 'sql_server.pyodbc', 'NAME': 'leon', #数据库的名字 'USER': 'sa', #登录数据库的用户名 'PASSWORD': 'password', #登录数据库的密码 'HOST': 'localhost', #数据库的IP地址 'PORT': '1433', #数据库的端口 'OPTIONS': { 'driver':'SQL Server Native Client 10.0', #10.0或11.0可以在添加odbc时看到 'MARS_Connection': True, }, } }
4. 同步数据库:
manage.py makemigrations
manage.py migrate
5. 常见问题
执行manage migrate时报告“django.db.utils.InterfaceError: (‘IM002’, ‘[IM002] [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序 (0) (SQLDriverConnect)’) ”的错误
解决方法:
a. 检查选项"driver"后面的信息是否正确
b. 可运行以下代码检查Python连接SqlServer 2008数据库是否正常
import pyodbc db = pyodbc.connect('DRIVER={SQL Server Native Client 10.0}; SERVER=127.0.0.1; DATABASE=leon; UID=sa; PWD=password') curs = db.execute('select getdate()') print(curs.fetchone()) db.close()
2012:
Django连接SQL Server最新配置指引
mssql-django简介
mssql-django 是django-mssql-backend的一个分支。该项目为 Django Web 框架提供了一个企业数据库连接选项,并支持 Microsoft SQL Server 和 Azure SQL 数据库。
1、支持 Django 2.2、3.0、3.1、3.2 和 4.0
2、在 Microsoft SQL Server 2016、2017、2019 上测试
3、通过 Django 测试套件的大部分测试
4、兼容 用于 SQL Server 的 Micosoft ODBC 驱动程序、 SQL Server Native Client和FreeTDS ODBC 驱动程序
依赖项
pyodbc 3.0 (or newer) and Django
mssql-django
在settings.py中设置
DATABASES = {
'default': {
'ENGINE': 'mssql',
'NAME': 'mysite', # 数据库名称
'HOST': '127.0.0.1', # 数据库地址,本机 ip 地址 127.0.0.1
'PORT': 1433, # 端口
'USER': 'sa', # 数据库用户名
'PASSWORD': '1', # 数据库密码
'OPTIONS': {
# 'driver': 'ODBC Driver 17 for SQL Server',
'driver': 'SQL Server Native Client 10.0',
},
}
}