前言:python
衆所周知,Django 默認支持sqlite,mysql,oracle,postgresql數據庫,不支持SQL Server數據庫。但實際生產環境中SQL Server數據庫用的仍是比較多的。咱們這裏用ODBC驅動鏈接SQL Server數據庫,進行維護開發。假如你也須要,恭喜你不用再漫天亂扒帖子了。我會盡量的詳細說Django創建和SQL Server數據庫的鏈接方法和存讀已經存在數據的SQL Server數據。mysql
注:另有《Django鏈接使用SQL Server數據庫(linux版)》,請自行在本人博文中查找linux
pip install django-crontab django-mssql django-pyodbc django-pyodbc-azure django-pytds django-sqlserver
安裝 Navicat Premium 後去對應目錄查看是否有ODBC驅動sql
須要注意的是 OPTIONS默認數據庫鏈接驅動設置的驅動要和上圖ODBC中驅動保持一致!數據庫
不少人使用mysql多了 端口很容易寫成3306,SQL Server端口默認1433django
DATABASES = { 'default': { 'ENGINE': 'sql_server.pyodbc', # odbc鏈接固定寫法 'NAME': 'MySQLserver', # 自定義數據庫鏈接名 'USER': 'sa', # 數據庫鏈接帳戶 'PASSWORD': '123456!@#', # 數據庫鏈接密碼 'HOST': '127.0.0.1', # 數據庫服務地址 'PORT': '1433', # 數據庫鏈接端口 'OPTIONS':{ 'driver':'SQL Server Native Client 11.0', # ODBC鏈接應用驅動 'MARS_Connection': True, } } }
注:安全
附:服務器
使用 python manage.py inspectdb > models.py 命令能夠反向建立和導出數據庫表,但自動建立和導出的表可能會有必定的錯誤和不完整。建議根據自身狀況酌情使用。oracle
若是你歷來沒有鏈接建立成功過,創建先用models 建立生成一個簡單的表進行測試工具
from django.db import models class TEST(models.Model): ID = models.IntegerField(primary_key=True,) NAME = models.CharField(max_length=255,) class Meta: # 若是讀取已有數據的必要參數! db_table = "Test_Table" def __str__(self): return self.NAME
其它地方就和Django普通使用方式是同樣的了~ 鏈接SQL Server 數據庫時候,要想訪問某個表中的某個數據,models.py 中確定是要聲明和指定表名的。
在不少時候鏈接不成功你能夠利用 python manage.py makemigrations APP 和 python manage.py migrate 來驗證下錯誤信息,若是數據庫中已有該名稱表的數據 僅僅會提示 數據庫中已存在該對象 。當提示該信息時候大部分狀況下你能夠正常的 python manage.py runserver 啓動服務和讀取SQL Server和使用數據庫中的信息了。
多看看錯誤信息冷靜的思考問題,你會找到答案的。