由于我最近工作需要使用mssql数据库,但是Django原生并不支持mssql,所以在网上找如何使Django连上数据库。网上说的方法有很多,我也试了很多。这里就给大家推坚一种,我目前使用的,我觉得是最靠谱的,以后也会一直使用的方法。
1.工具:django-pyodbc-azure
django-pyodbc-azure这个工具是目前据我所知最好用的django链接mssql的库(虽然他的名字感觉和mssql没有半毛钱关系)
它有很多版本,需要配合你的Django版本,来下载。附上网址:https://pypi.org/project/django-pyodbc-azure/1.11.0.0/
可以从历史版本里看看说明文档,看是否适合你的django版本,这里我就看1.11版本的说明文档了。
按照使用案例:
DATABASES = {
'default': {
'ENGINE': 'sql_server.pyodbc',
'NAME': 'mydb',
'USER': 'user@myserver',
'PASSWORD': 'password',
'HOST': 'myserver.database.windows.net',
'PORT': '',
'OPTIONS': {
'driver': 'ODBC Driver 13 for SQL Server',
},
},
}
# set this to False if you want to turn off pyodbc's connection pooling
DATABASE_CONNECTION_POOLING = False
这里值得说明一点的是需要电脑下载ODBC Driver 13 for SQL Server。
windows好解决,直接拿着这个名字去百度搜索就好了。跳出来第一个带Microsoft标志的链接点进去下载就完事了。附上13版本的链接:https://www.microsoft.com/en-us/download/details.aspx?id=50420(windows版本太低可能要下载11版本。我这里是win10,用13没毛病)
麻烦的是Mac,笔者还有一台mac,测试的时候头疼的不行。测试了很多方法,最后推荐大家使用FreeTDS。附上链接https://github.com/mkleehammer/pyodbc/wiki/Connecting-to-SQL-Server-from-Mac-OSX
大家跟着链接里说的 完成mac终端连接到mssql的工作。成功之后,把'driver': 'ODBC Driver 13 for SQL Server',这句话的ODBC Driver 13 for SQL Server改成你使用的FreeTDS版本。
总结完毕,谢谢大家。