Django连接SQL Server数据库,亲测成功

django连接SQLserver数据库,亲测成功

开发环境

  1. python 3.6.1
  2. Django 2.1.4
  3. win10
  4. Pycharm2017
  5. SQL Server 2012

步骤1:安装需要的包

  1. django-pyodbc、django-pyodbc-azure、django-pytds
  2. pyodbc、django-sqlserver(主要是通过这两个包连接)
  3. pywin32、django-mssql
    说明:django-sqlserver有一些依赖包,使用pip安装可能安装不全,导致后面报错,建议使用Pycharm安装这些包,他会帮你安装依赖包,懒人的选择。

步骤2:配置setting.py文件

DATABASES = {
    'default': {
         'ENGINE': 'sql_server.pyodbc',
         'NAME': 'oa_test',
         'USER': 'sa',
         'PASSWORD': 'qwe123',
         'HOST': '127.0.0.1',
         'PORT': '',
          'OPTIONS': {
              'driver':'SQL Server Native Client 11.0',
              'MARS_Connection': True,
         },
     },
}

关于OPTIONS中的说明:

  1. driver中的“SQL Server Native Client 11.0”是11.0还是10.0或者是其他的版本,可以通过查看数据库所在的服务器的ODBC数据源管理器,具体步骤是打开“ODBC数据源管理器”–>“驱动程序”,然后“名称”一栏中有版本。
  2. MARS_Connection必须写,不能删

在调试过程中可能遇到下面这个报错:

django.core.exceptions.ImproperlyConfigured: 'sql_server.pyodbc' isn't an available database backend.
Try using 'django.db.backends.XXX', where XXX is one of:
    'mysql', 'oracle', 'postgresql', 'sqlite3'

解决办法:在项目所在的环境文件夹中找到site-packages文件夹并将这个文件夹下的sql_server文件夹pyodbc文件夹拷贝到项目的根目录里,这样就不会报错了,site-packages文件夹找不到的请自行百度。
示意图
参考的文章:
1.Django连接SQL Server配置指引
2.django2.0连接sqlserver2008

### Django 连接 SQL Server 数据库教程 Django 并未内置对 Microsoft SQL Server 的支持,因此需要借助第三方适配器来实现连接功能。以下是详细的配置方法: #### 1. 安装必要依赖 为了使 Django 能够成功连接SQL Server 数据库,需先安装 `django-pyodbc-azure` 和 `pyodbc` 模块。 ```bash pip install django-pyodbc-azure pyodbc ``` 这一步骤确保了 Django 可以通过 ODBC 驱动程序与 SQL Server 建立通信[^4]。 --- #### 2. 配置数据库设置 在项目的 `settings.py` 文件中修改 `DATABASES` 字典的内容如下所示: ```python DATABASES = { 'default': { 'ENGINE': 'sql_server.pyodbc', 'NAME': 'your_database_name', # 替换为您的数据库名称 'HOST': 'your_host_address', # 替换为主机地址,默认为 localhost (即 127.0.0.1) 'PORT': '1433', # 默认端口号为 1433 'USER': 'your_username', # 登录数据库的用户名 'PASSWORD': 'your_password', # 用户对应的密码 'OPTIONS': { 'driver': 'ODBC Driver 17 for SQL Server', # 推荐使用最新版本驱动 'MARS_Connection': True, }, } } ``` 上述代码片段展示了如何定义一个针对 SQL Server数据库连接参数。其中 `'driver'` 参数指定了所使用ODBC 驱动程序类型;推荐优先尝试最新的驱动版本(如 `ODBC Driver 17 for SQL Server`)。如果遇到兼容性问题,则可回退至较早版本(例如 `SQL Server Native Client 11.0`)[^5]。 --- #### 3. 启用 Windows 认证模式(可选) 对于某些场景下可能需要用到 Windows 身份验证而非标准的用户名/密码组合方式来进行授权操作时,在选项部分加入额外字段即可完成切换: ```python 'DEFAULT_AUTHENTICATION_PLUGIN': 'ntlm' ``` 或者直接移除 USER/PASSWORD 设置并启用集成安全机制: ```python 'OPTIONS': { 'driver': 'ODBC Driver 17 for SQL Server', 'trusted_connection': 'yes', }, ``` 这种方式适用于本地开发环境或域控网络内部部署情况下的简化管理需求[^2]。 --- #### 4. 连接有效性 完成以上所有更改之后,请运行以下命令试新配置是否生效以及确认是否存在任何潜在错误消息提示: ```bash python manage.py check --database=default ``` 如果没有报错则说明当前设定无误可以正常使用;反之可以根据具体反馈调整相应地方直至顺利通过校验为止。 --- #### 注意事项 - **确保已正确安装对应平台上的 ODBC 驱动**:不同操作系统上可用的驱动列表有所差异,请参照官方文档下载适合您系统的版本。 - **开放防火墙规则**:当目标 DB 实例位于远程服务器之上时记得检查是否有适当放行 TCP/IP 协议及相关端口范围的服务策略被激活。 - **赋予足够的权限给指定账户**:无论是 SA 管理员还是自定义角色均应具备执行 CRUD 操作所需的最低限度权利集合作为基础保障措施之一[^3]。 ---
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值