调和Django与Sql server2019的关系

数据库升级成sqlserver2019后,用户发现一些APP不能用了,检查发现是Django连接sqlserver的APP全部不能用了,页面打开都是500错误,进入Pycharm调试发现:
1.遇到错误1:django.db.backends.XXX'错误

File "C:\Python\Python310\lib\site-packages\django\db\utils.py", line 202, in getitem

backend = load_backend(db['ENGINE'])

File "C:\Python\Python310\lib\site-packages\django\db\utils.py", line 121, in load_backend

raise ImproperlyConfigured(

django.core.exceptions.ImproperlyConfigured: 'sql_server.pyodbc' isn't an available database backend.

Try using 'django.db.backends.XXX', where XXX is one of:

'mysql', 'oracle', 'postgresql', 'sqlite3'

按网上提示,修改连接字符串是绝对不好使的,安装相关的库也不好使。

C:\Users\Administrator>pip install django-mssql-backend

Collecting django-mssql-backend

Downloading django_mssql_backend-2.8.1-py3-none-any.whl.metadata (7.4 kB)

Requirement already satisfied: pyodbc>=3.0 in c:\python\python310\lib\site-packages (from django-mssql-backend) (4.0.32)

Downloading django_mssql_backend-2.8.1-py3-none-any.whl (52 kB)

---------------------------------------- 52.4/52.4 kB 669.1 kB/s eta 0:00:00

Installing collected packages: django-mssql-backend

Successfully installed django-mssql-backend-2.8.1

notice\] A new release of pip is available: 23.3.2 -\> 25.0.1 \[notice\] To update, run: python.exe -m pip install --upgrade pip C:\\Users\\Administrator\>***pip install django-pyodbc-azure*** Requirement already satisfied: django-pyodbc-azure in c:\\python\\python310\\lib\\site-packages (2.1.0.0) Requirement already satisfied: Django\<2.2,\>=2.1.0 in c:\\python\\python310\\lib\\site-packages (from django-pyodbc-azure) (2.1.15) Requirement already satisfied: pyodbc\>=3.0 in c:\\python\\python310\\lib\\site-packages (from django-pyodbc-azure) (4.0.32) Requirement already satisfied: pytz in c:\\python\\python310\\lib\\site-packages (from Django\<2.2,\>=2.1.0-\>django-pyodbc-azure) (2022.1) \[notice\] A new release of pip is available: 23.3.2 -\> 25.0.1 \[notice\] To update, run: python.exe -m pip install --upgrade pip C:\\Users\\Administrator\>***python \>\>\> import django \>\>\> print(django.get_version())*** 2.1.15 **解决方案:必须要升级Django才能解决问题** C:\\Users\\Administrator\>***pip install --upgrade django==3.2.0*** Collecting django==3.2.0 Using cached Django-3.2-py3-none-any.whl.metadata (3.9 kB) Requirement already satisfied: asgiref\<4,\>=3.3.2 in c:\\python\\python310\\lib\\site-packages (from django==3.2.0) (3.8.1) Requirement already satisfied: pytz in c:\\python\\python310\\lib\\site-packages (from django==3.2.0) (2022.1) Requirement already satisfied: sqlparse\>=0.2.2 in c:\\python\\python310\\lib\\site-packages (from django==3.2.0) (0.4.2) Requirement already satisfied: typing-extensions\>=4 in c:\\python\\python310\\lib\\site-packages (from asgiref\<4,\>=3.3.2-\>django==3.2.0) (4.5.0) Using cached Django-3.2-py3-none-any.whl (7.9 MB) Installing collected packages: django Attempting uninstall: django Found existing installation: Django 2.1.3 Uninstalling Django-2.1.3: Successfully uninstalled Django-2.1.3 ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts. django-pyodbc-azure 2.1.0.0 requires Django\<2.2,\>=2.1.0, but you have django 3.2 which is incompatible. Successfully installed django-3.2 C:\\Users\\Administrator\>***pip install --upgrade requests*** Requirement already satisfied: requests in c:\\python\\python310\\lib\\site-packages (2.27.1) Collecting requests Downloading requests-2.32.3-py3-none-any.whl.metadata (4.6 kB) Requirement already satisfied: charset-normalizer\<4,\>=2 in c:\\python\\python310\\lib\\site-packages (from requests) (2.0.12) Requirement already satisfied: idna\<4,\>=2.5 in c:\\python\\python310\\lib\\site-packages (from requests) (3.3) Requirement already satisfied: urllib3\<3,\>=1.21.1 in c:\\python\\python310\\lib\\site-packages (from requests) (1.26.9) Requirement already satisfied: certifi\>=2017.4.17 in c:\\python\\python310\\lib\\site-packages (from requests) (2021.10.8) Downloading requests-2.32.3-py3-none-any.whl (64 kB) Installing collected packages: requests Attempting uninstall: requests Found existing installation: requests 2.27.1 Uninstalling requests-2.27.1: Successfully uninstalled requests-2.27.1 Successfully installed requests-2.32.3 \[notice\] A new release of pip is available: 23.3.2 -\> 25.0.1 \[notice\] To update, run: python.exe -m pip install --upgrade pip C:\\Users\\Administrator\>***python.exe -m pip install --upgrade pip*** Requirement already satisfied: pip in c:\\python\\python310\\lib\\site-packages (23.3.2) Collecting pip Downloading pip-25.0.1-py3-none-any.whl.metadata (3.7 kB) Downloading pip-25.0.1-py3-none-any.whl (1.8 MB) ---------------------------------------- 1.8/1.8 MB 6.9 MB/s eta 0:00:00 Installing collected packages: pip Attempting uninstall: pip Found existing installation: pip 23.3.2 Uninstalling pip-23.3.2: Successfully uninstalled pip-23.3.2 Successfully installed pip-25.0.1 **2.遇到的错误2:升级django后,访问APP的时候,不再提示sqlserver连接错误了,但出新错误:** RequestsDependencyWarning: urllib3 (1.26.9) or chardet (5.1.0)/charset_normalizer (2.0.12) doesn't match a supported version! warnings.warn("urllib3 ({}) or chardet ({})/charset_normalizer ({}) doesn't match a supported " System check identified some issues: 更新 urllib3 C:\\Users\\Administrator\>***pip install --upgrade urllib3*** Requirement already satisfied: urllib3 in c:\\python\\python310\\lib\\site-packages (1.26.9) Collecting urllib3 Downloading urllib3-2.3.0-py3-none-any.whl.metadata (6.5 kB) Downloading urllib3-2.3.0-py3-none-any.whl (128 kB) Installing collected packages: urllib3 Attempting uninstall: urllib3 Found existing installation: urllib3 1.26.9 Uninstalling urllib3-1.26.9: Successfully uninstalled urllib3-1.26.9 Successfully installed urllib3-2.3.0 **3.遇到的错误3:** ***from django.shortcuts import HttpResponseRedirect,Http404,HttpResponse,render_to_response ImportError: cannot import name 'render_to_response' from 'django.shortcuts' (C:\\Python\\Python310\\lib\\site-packages\\django\\shortcuts.py)*** 这个需要使用 render 代替 render_to_response。render_to_response已经被废弃 render 方法可接收三个参数,一是request参数,二是待渲染的html模板文件,三是保存具体数据的字典参数。它的作用就是将数据填充进模板文件,最后把结果返回给浏览器。 **4.遇到的错误4:** ?: (corsheaders.E013) Origin '\*' in CORS_ORIGIN_WHITELIST is missing scheme or netloc HINT: Add a scheme (e.g. https://) or netloc (e.g. example.com). ***CORS_ORIGIN_WHITELIST = ( \['http://127.0.0.1:\*'\]*** ) 将原来的值'http://127.0.0.1','http://192.168.0.1'改成\['http://127.0.0.1','http://192.168.0.1'\],通过 **5.遇到新错误5:** django.core.exceptions.ImproperlyConfigured: WSGI application ***'waitress.server:call_in_application' could not be loaded; Error importing module*** . 因为使用的是IIS,没有使用waitress, 直接用#注释掉 运行不正常的APP终于能正常运行。

相关推荐
不良人天码星12 分钟前
谈谈redis的持久化
数据库·redis·缓存
qq_479875431 小时前
TimerFd & Epoll
java·服务器·数据库
绵绵细雨中的乡音1 小时前
MySQL 数据库核心操作全解析:从创建到备份与连接管理
数据库·oracle
wayuncn3 小时前
哈尔滨电商企业服务器托管方案
运维·服务器·数据库
重整旗鼓~3 小时前
27.Redisson基本使用和可重入性
数据库·redis·缓存
瑶总迷弟3 小时前
使用 Docker 和 docker-compose 快速部署 openGauss
linux·数据库·云原生·eureka
C.R.xing3 小时前
Pyspark分布式访问NebulaGraph图数据库
数据库·分布式·python·pyspark·nebulagraph
九皇叔叔3 小时前
深度解析 PostgreSQL 中的 ctid、xmin、xmax:从原理到实战
数据库·postgresql
殷丿grd_志鹏4 小时前
开源项目RuoYi-Cloud-Plus详解——公网内网穿透到虚拟机环境(持续更新)
数据库·开源·内网穿透·虚拟机
kali-Myon4 小时前
NewStarCTF2025-Week2-Web
web安全·sqlite·php·web·ctf·文件上传·文件包含