mac Django框架接入SqlServer
背景
- 我需要通过django queryset 将数据存储进sqlserver,相信大多数朋友都有过接入mysql的操作,但是mac中需要接入sqlserver 还并不是那么简单,经历了很多坑,还是挺多步骤的,下面跟着我走吧
ps. 如果对django 的orm框架不太会使用的朋友可以看下这里
事前准备
mac安装sqlserver
- 如果有英语基础的看这里
- 看了上面的话 这一步可以
跳过
,没有的话跟我走一遍 - 安装docker,看这里 ps.需要登录才能下载dmg镜像
- 安装Azure Data Studio
- 启动docker 顺序运行如下命令:
$ docker pull microsoft/mssql-server-linux
$ docker run -d --name 取个名字 -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=你的密码不少于8位' -p 1433:1433 microsoft/mssql-server-linux
- 检查下是否安装ok
$ docker ps
// 出现如下说明成功
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
13129e1ccda6 microsoft/mssql-server-linux "/opt/mssql/bin/sqls…" 2 hours ago Up 2 hours 0.0.0.0:1433->1433/tcp power
- 以上步骤说明sqlserver已经安装并且启动成功了
- 登录 Azure Data Studio
建库建表
- 打开Azure Data Studio的New Query模块,运行如下命令:
$ create database crawl_teach;
- 这样,我们第一个测试库就建好了
- 为了方便测试,再建一个表
test
,我们只有一个字段name
CREATE TABLE test (
name nvarchar(255) NOT NULL,
);
- 最终的效果图:
Django接入
- 之前django一直接入不了,各种坑,后面看到了一个大神的博客,终于解决了
- 给大家看下我的核心代码:
# models.py核心代码
class SqlServerTest(models.Model):
class Meta:
db_table = 'test'
name = models.CharField(max_length=100, default="")
# 下面是settings.py核心代码
DATABASES = {
'crawl_class': {
'ENGINE': 'sql_server.pyodbc',
'NAME': 'crawl_teach',
'USER': 'sa',
'PASSWORD': '13672240290cccC+',
'HOST': '127.0.0.1',
'PORT': '1433',
'OPTIONS': {'host_is_server': True, }
},
}
# coding:utf8
# 逻辑代码
import django
import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'app.app_data.settings'
django.setup()
from app.app_data.models import SqlServerTest
if __name__ == '__main__':
SqlServerTest.objects.create(name="power")
- 最终运行代码,终于成功了,不容易不容易
参考
[1] docker启动sqlserver
[2] sqlserver指南
[3] 大神的博客
[4] Django QuerySet学习