如何在Django中配置连接SQL Server替代默认数据库?
在Django中连接SQL Server替代默认数据库
1. 安装数据库驱动
Django连接SQL Server需要适配的驱动包,推荐两种选择:
- 安装官方维护的
mssql-django包:pip install mssql-django - 或者使用社区维护的
pyodbc适配方案:pip install pyodbc django-pyodbc-azure
2. 修改settings.py中的数据库配置
替换默认的DATABASES配置块为以下内容,根据你使用的驱动调整:
方案一:使用mssql-django(官方推荐)
DATABASES = { 'default': { 'ENGINE': 'mssql', 'NAME': '<你的数据库名称>', 'USER': '<数据库登录用户名>', 'PASSWORD': '<数据库登录密码>', 'HOST': '<数据库服务器地址>', # 示例:localhost、192.168.1.100 'PORT': '1433', # SQL Server默认端口,修改过需对应调整 'OPTIONS': { 'driver': 'ODBC Driver 17 for SQL Server', # 需提前在系统安装对应版本ODBC驱动 }, } }
方案二:使用pyodbc
DATABASES = { 'default': { 'ENGINE': 'sql_server.pyodbc', 'NAME': '<你的数据库名称>', 'USER': '<数据库登录用户名>', 'PASSWORD': '<数据库登录密码>', 'HOST': '<数据库服务器地址>', 'PORT': '1433', 'OPTIONS': { 'driver': 'ODBC Driver 17 for SQL Server', 'MARS_Connection': 'True', # 可选,支持多结果集场景 }, } }
3. Windows身份验证(可选)
如果使用Windows本地身份验证而非SQL Server账号登录,可移除USER和PASSWORD,并在OPTIONS中添加配置:
'OPTIONS': { 'driver': 'ODBC Driver 17 for SQL Server', 'Trusted_Connection': 'yes', }
4. 验证配置
配置完成后,运行以下命令初始化数据库表结构,确认连接正常:
python manage.py migrate
注意事项
- 确保系统已安装对应版本的ODBC驱动(如
ODBC Driver 17 for SQL Server) - 若连接远程SQL Server,需确认服务器开放1433端口且允许客户端IP访问
- 检查数据库账号是否拥有创建表、读写数据等足够权限
内容的提问来源于stack exchange,提问作者Manish Kumar Yadav
相关产品推荐
相关产品推荐

