Django3 使用 Sql Server 数据库

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

 

Django3 使用 Sql Server 数据库_第1张图片

 

不然具体应用会报错:

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)")

 


以上只是配置, 具体的业务应用就不提了。

你可能感兴趣的:(python)