尝试使用DjangomSqlBackend将Django连接到SQL Server时出错

2024-05-20 02:31:01 发布

您现在位置:Python中文网/ 问答频道 /正文

Windows 10   
SQL Server 2019  
Python 3.9.1  
Django 3.2.5  

pip freeze: 
  asgiref==3.4.1  
  Django==3.2.5    
  django-mssql-backend==2.8.1  
  djangorestframework==3.12.4  
  pyodbc==4.0.30  
  pytz==2021.1  
  sqlparse==0.4.1 

DATABASES = {
    'default': {
        'ENGINE': 'sql_server.pyodbc',
        'NAME': 'dbForDjango',
        'USER': 'sa',
        'PASSWORD': 'sdf874sd21',
        'HOST': 'DESKTOP-AR76KF2\SQL_SERVER',
        'PORT': '',

        'OPTIONS': {
            'driver': 'ODBC Driver 17 for SQL Server',
        },
    },
}

我可以毫无问题地运行服务器,而且py manage.py shell是 正在工作,但Django根本无法与数据库通信。
命令“py manage.py dbshell”出现以下错误:

enter image description here

Please ignore the directory name "playingWithFastAPI", am using Django not FastAPI :)

py manage.py迁移发生以下错误:

enter image description here


Tags: pipdjangopybackendsqlmanageserverwindows
2条回答

因此,在Django版本超过3.2的情况下,必须使用mssql Django。 https://docs.microsoft.com/en-us/samples/azure-samples/mssql-django-samples/mssql-django-samples/ 祝你好运

py -m pip install django mssql-django

# settings.py
DATABASES = {
    "default": {
        "ENGINE": "mssql",
        "NAME": "DATABASE_NAME",
        "USER": "USER_NAME",
        "PASSWORD": "PASSWORD",
        "HOST": "HOST_ADDRESS",
        "PORT": "1433",
        "OPTIONS": {"driver": "ODBC Driver 17 for SQL Server", 
        },
    },
}

dbshell错误是一个已知问题(请参见https://github.com/ESSolutions/django-mssql-backend/issues/100),因为django mssql后端与django 3.1+不兼容

相关问题 更多 >