django连接sqlserver数据库

django连接sqlserver数据库。有很多的方案,以下介绍一种我认为比较可靠的方案。

调用层次关系大致如下:

django-pyodbc驱动

我使用的django版本是1.11.17,python版本为3.8。

django-pyodbc-azure是django-pyodbc的fork版本,支持sqlserver和Azure数据库。

安装django-pyodbc-azure

pip install django-pyodbc-azure==1.11.15

因为django-pyodbc-azure需要与django的大版本号一一对应。pip install django-pyodbc-azure==1.11会默认安装1.11.0版本,该版本的isolation_level有bug,不会起作用。 

ODBC驱动

推荐使用微软驱动"ODBC Driver 17 for SQL Server",以下的连接有全平台的安装方式。

微软驱动安装方法

Django配置

我们业务需要的是读写分离,数据库有db_read和db_write两个数据库连接。由于django orm不能表达with nolock,所以使用isolation_level="READ UNCOMMITTED"达到同样效果。

 'db_write': {
        'NAME': 'db_main',
        'ENGINE': 'sql_server.pyodbc',
        'USER': 'backend',
        'PASSWORD': 'backend',
        'HOST': '127.0.0.1,18964', 
        'OPTIONS': {
            'driver': 'ODBC Driver 17 for SQL Server',
           },    
    },
     'db_read': {
        'NAME': 'db_main',
        'ENGINE': 'sql_server.pyodbc',
        'USER': 'backend',
        'PASSWORD': 'backend',
        'HOST': '127.0.0.1,18964', 
        'OPTIONS': {
            'driver': 'ODBC Driver 17 for SQL Server',
            'isolation_level':'READ UNCOMMITTED',
           },    
    },     

 

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值