前言: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和使用数据库中的信息了。
多看看错误信息冷静的思考问题,你会找到答案的。