Django 默认是直接支持sqlite, postgresql, mysql 和oracle 的, 但是不直接支持Sql server(测试数据库sql server 2017)
注意Sql server 要开启TCP 端口, telnet 1433端口就知道了, 没开启的话, 开启方式自行网上搜索。
安装包: django-pyodbc-azure 和 pyodbc
settings.py 设置:
DATABASES={
'default':{
'ENGINE':'sql_server.pyodbc',
'NAME':'数据库名称',
'USER':'登录用户名',
'PASSWORD':'登录用户密码',
'HOST':'数据库实例', #如server\instance
'PORT':'', #默认1433
'OPTIONS':{
'driver':'SQLServerNativeClient11.0'
},
},
}
更加详细的资料看django-pyodbc-azure 官网: https://pypi.org/project/django-pyodbc-azure/
简单调试命令
E:\py_pros\lhqDjango\venv\Scripts\python.exe manage.py shell
>>> from django.db import connections
>>> conn = connections['default']
>>> cur = conn.cursor()
>>> cur.execute('select 1')
>>> cur.fetchall()
[(1,)]
如果用到Models,那么需要在所在数据库里面生成 django 一些专门的数据表(这个步骤必不可少)
E:\py_pros\lhqDjango\venv\Scripts\python.exe manage.py migrate
不然具体应用会报错:
django.db.utils.ProgrammingError: ('42S02', "[42S02] [Microsoft][SQL Server Native Client 11.0][SQL Server]对象名 'django_session' 无效。 (208) (SQLExecDirectW); [42S02] [Microsoft][SQL Server Native Client 11.0][SQL Server]无法预定义语句。 (8180)") |
以上只是配置, 具体的业务应用就不提了。