Django——连接sql server数据库

Posted XiaoBoya

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django——连接sql server数据库相关的知识,希望对你有一定的参考价值。

Django——连接sql server数据库


 

*在此注明,本人使用的是python3.5和Django2.0.4

  sql server是微软出的一款闭源的可运行于windows和linux平台上的关系型数据库。由于其闭源的特性,所以较少有公司使用,但是比较神奇的是,我所在的公司和我几个朋友所在的公司业务都是以爬虫为主,都是以sql server作为主要的数据库在使用。

一、打包

  如果你是使用Django的老手应该知道Django默认不支持sql server;如果你刚开始接触Django,那么你应该知道Django默认支持四种数据库:postgresql、mysql、oracle、sqlite。以上四个数据库不需要直接进行过多的操作,只需要你修改项目中的settings.py文件中的DATABASE就可以了。

  但是使用sql server,则需要自己再导入一些东西。

  上图中所涉及到的包是我自己打进去的全部可以已通过"pip install XXX"安装,不需要在Django文件中导入。其中特别需要注意的是django-pyodbc-azure是一定要装的,没有它直接就崩了。

二、代码

  将上一步完成以后就只需要修改你的项目中的settings.py文件就可以了。

 1 DATABASES = {
 2     \'default\': {
 3         \'NAME\': \'screen\',
 4         \'ENGINE\': \'sql_server.pyodbc\',
 5         \'HOST\': \'127.0.0.1\',
 6         \'PORT\': \'1433\',
 7         \'USER\': \'user\',
 8         \'PASSWORD\': \'password\',
 9         \'OPTIONS\':{
10             \'driver\':\'SQL Server Native Client 10.0\',
11         }
12     }
13 }

  在这里要注意几点:

  1.\'ENGINE\'这个键值对是固定写法(好像是要pip install pyodbc以后才能生效,时间有点久,有点记不清了)

  2.sql server的默认端口号是1433,但是可能有些公司会改端口号,大家用之前自己最好查一查这个端口是不是被sql server占用了

  3.在连接默认数据库的时候很多人都没有写过\'OPTIONS\'这个东西,我一开始也没有写,结果怎么着都连不上。之后上网查了查,很多人说在odbc里调数据库的东西引擎(公司用的windows做开发系统,勿喷……)。结果加进去还是不行,最后发现是\'OPTIONS\'没有写,写完之后所有问题都解决了。

 

  这个也是很久之前做的事,刚闲下来着手整理,所以有些东西可能有些遗漏。如果有谁看到这篇文章,发现了一些错误或者遗漏的部分请留言,我会及时改正。谢谢!希望这篇文章能帮助到需要那些帮助的朋友!

 

以上是关于Django——连接sql server数据库的主要内容,如果未能解决你的问题,请参考以下文章

Django 连接SQL server

linux上的Django-pyodbc SQL Server/freetds服务器连接问题

Django连接SQL Server,安装相关扩展包及相关配置

在 Django 中使用 GEOGRAPHY 列更新 SQL Server 表

Django with database on SQL Server

将 Django 连接到 MSSQL Server 2012 时出错