目录


零之前言

django2.0以上的版本,对于使用mysql数据库的话,需要修改我们的源码才可以使用,后面我再写如何使用Mysql。今天先讲mssql。

且使用sql数据库的话,我们的django只能在Windows上运行,不能再linux上运行。

一.安装支持库
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyodbc
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple django-pyodbc-azure

在安装django-pyodbc-azure的时候,它会自动检查使用的django版本,然后高于2.1版本的,会自动给你下载django2.1.15覆盖安装你的高版本的django。

二.设置ODBC

这我也不知道怎么设置,乱设置设置它就可以用了,我也佛了。

刚开始我没有使用这一步,就会出现以下情况:

[IM002] [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序

所以我们要确保我们ODBC里有我们mssql的驱动。

首先打开ODBC(找不到的,在桌面搜索栏里搜索odbc)

确保你的系统活着的用户DSN里有我们SQL Server Native Client 10.0 +

如果没有,就自己建立一个:

然后我的数据库user叫Test,然后表名也叫Test,所以我就这样设置了,然后数据库的位置我是自己写的我云服务器上数据库的位置

下一步后输入了那个user的id和password

然后这几步我都是直接下一步

然后Test一下,就可以了

然后就完成了我们ODBC驱动的设置

说明:虽然这次安装成功了,但是我后面把这个驱动删除了Django还是可以makemigrations。就很奇怪:未安装——报错;安装——不报错;安装后删除——不报错

三.配置数据库源

在我们的Settings文件里修改DATABASE的设置:

驱动要和你设置的驱动对应。

DATABASES = {
    'default': {
        'ENGINE': 'sql_server.pyodbc',
        'NAME': 'Test',
        'USER': 'Test',
        'PASSWORD': 'yourpassword',
        'HOST': '39.106.64.xxx',
        'PORT': '1433',
        'OPTIONS': {
            'driver': 'SQL Server Native Client 11.0',
            'MARS_Connection': True,
        },
    }
}
四.测试

在我们app的models里随便写个模型测试一下,比如我写一个登录模型:

class Account(models.Model):
    acc_name = models.CharField(max_length=16, unique=True)
    acc_password = models.CharField(max_length=16)
    acc_permission = models.IntegerField(default=0, db_column='permission')

    class Meta:
        db_table = 'learn'

成功!

五.查看

在Pycharm里,专门有一个简易的数据库管理系统:

右侧-Database

选中我们的数据库

界面下方会提醒你下载驱动,如果已经下载了就不会提示:

然后输入我们的参数,并点击Test Connection,如果连接成功会有绿色的小勾勾:

然后我们就可以查看我们的表啦: