Django python 连接 sqlserver

  django默认支持四种数据库的连接,sqlserver并不在其列,为了连接它,我们可以下载package,配置

常见有几种方法(详见https://www.cnblogs.com/lin135/p/7805727.html

这里针对工程环境,尝试了方法二和方法四,

方法二:

1、安装必要的组件:

  pip install django-sqlserver  pyodbc  django-mssql 

2、修改settings.py的DATABASES:

DATABASES = {
    # 'default': {
    #     'ENGINE': 'django.db.backends.sqlite3',
    #     'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    # }
    'default': {
        'ENGINE': 'sqlserver',
        'NAME': 'MyDB',
        'HOST': 'IP',
        'PORT': '1433',
        'USER': 'name',
        'PASSWORD': 'pwd',
        # 'OPTIONS': {
        #     'DRIVER': 'SQL Server Native Client 11.0',
        # },
    }
}

django 版本v2.1.0尝试连接提示找不到drive,降低django版本到v1.11.20,连接成功。('options'为可选配置项)

 

方法四:

1、安装django-pyodbc-azure和pyodbc

pip install django-pyodbc-azure==1.11.15.0  pyodbc==4.0.27

2、修改settings.py的DATABASES:

DATABASES = {
    'default': {
         'ENGINE': 'sql_server.pyodbc',
         'NAME': 'MyDB',
         'USER': 'user',
         'PASSWORD': 'password',
         'HOST': '127.0.0.1',
         'PORT': '',
          'OPTIONS': {
              'driver':'SQL Server Native Client 11.0',
              'MARS_Connection': True,

         },
     },
}

# set this to False if you want to turn off pyodbc's connection pooling
DATABASE_CONNECTION_POOLING = False

此方法安装django-pyodbc-azure v2.1.0.0版本时,dependencies为:(https://pypi.org/project/django-pyodbc-azure/

  • Django 2.1
  • pyodbc 3.0 or newer

The old version of django-pyodbc-azure must match with django version, specify an appropriate version number (1.10.x.x for Django 1.10,  1.11.x.x for Django 1.11) at installation like this:

pip install "django-pyodbc-azure<1.11"
pip install "django-pyodbc-azure<2.0"

另外在配置‘option’项时, driver需要和本地环境匹配,可以用下面方法查看本地环境支持的driver

ODBC驱动程序(控制面板-->管理工具-->数据源(ODBC))

或者用python console验证

>>>import pyodbc
>>>pyodbc.drivers()
输出:['SQL Server', 'SQL Server Native Client 11.0', 'ODBC Driver 17 for SQL Server']

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lxp198837

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值