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

相关推荐
珹洺1 小时前
计算机网络:(二)计算机网络在我国发展与网络类别与性能 (附带图谱更好对比理解)
运维·服务器·网络·数据库·后端·计算机网络
多多*1 小时前
Spring设计模式 八股速记 高层模块底层模块 依赖倒置原则 开闭原则 接口隔离原则
java·开发语言·数据库·macos·github·objective-c·cocoa
程序员清风1 小时前
谈谈Select For Update的实现原理?
数据库·后端·面试
韩曙亮2 小时前
【AI 大模型】RAG 检索增强生成 ⑤ ( 向量数据库 | 向量数据库 索引结构和搜索算法 | 常见 向量数据库 对比 | 安装并使用 向量数据库 chromadb 案例 )
数据库·人工智能·大模型·openai·向量数据库·ai大模型·chromadb
安於宿命2 小时前
【MySQL】基本查询
android·数据库·mysql
安科瑞刘鸿鹏2 小时前
什么是故障电弧?故障电弧的危害该如何应对?
运维·网络·数据库·物联网
油丶酸萝卜别吃2 小时前
mariaDB中常见的DDL,DML,DQL语句
数据库·oracle·mariadb
Lorin 洛林2 小时前
使用 yum 命令安装 MariaDB 指南
数据库
顾漂亮2 小时前
深入理解MySQL数据库索引
数据库·mysql
工业互联网专业2 小时前
基于django+vue的购物商城系统
vue.js·python·django·毕业设计·源码·课程设计·购物商城系统