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'沒有寫,寫完之后所有問題都解決了。
這個也是很久之前做的事,剛閑下來着手整理,所以有些東西可能有些遺漏。如果有誰看到這篇文章,發現了一些錯誤或者遺漏的部分請留言,我會及時改正。謝謝!希望這篇文章能幫助到需要那些幫助的朋友!