调和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终于能正常运行。

相关推荐
cookqq26 分钟前
mongodb源码分析session异步接受asyncSourceMessage()客户端流变Message对象
数据库·sql·mongodb·nosql
呼拉拉呼拉37 分钟前
Redis故障转移
数据库·redis·缓存·高可用架构
什么都想学的阿超40 分钟前
【Redis系列 04】Redis高可用架构实战:主从复制与哨兵模式从零到生产
数据库·redis·架构
pp-周子晗(努力赶上课程进度版)1 小时前
【MySQL】视图、用户管理、MySQL使用C\C++连接
数据库·mysql
斯特凡今天也很帅1 小时前
clickhouse常用语句汇总——持续更新中
数据库·sql·clickhouse
超级小忍2 小时前
如何配置 MySQL 允许远程连接
数据库·mysql·adb
吹牛不交税3 小时前
sqlsugar WhereIF条件的大于等于和等于查出来的坑
数据库·mysql
hshpy3 小时前
setting up Activiti BPMN Workflow Engine with Spring Boot
数据库·spring boot·后端
文牧之4 小时前
Oracle 审计参数:AUDIT_TRAIL 和 AUDIT_SYS_OPERATIONS
运维·数据库·oracle
篱笆院的狗4 小时前
如何使用 Redis 快速实现布隆过滤器?
数据库·redis·缓存