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

相关推荐
广州灵眸科技有限公司2 小时前
xfce桌面触摸校准:基于灵眸科技EASY-EAl-Orin-Nano
数据库·windows·科技
憧憬成为web高手5 小时前
皮卡丘靶场速通--sql 2
数据库·sql·mybatis
段一凡-华北理工大学5 小时前
向量数据库实战:选型、调优与落地~系列文章12:文本分块策略实战:chunk_size 怎么选?重叠多少?
开发语言·数据库·后端·oracle·rust·工业智能体·高炉智能化
oradh7 小时前
Oracle XTTS实现跨版本迁移和升级(Oracle 11g单库升级至19C RAC集群)
数据库·oracle·11g升级19c·xtts跨版本迁移和升级
z123456789868 小时前
2026最新两款AI编程工具深度对比实测
java·数据库·ai编程
程序猿DD8 小时前
一个 API Key,统一调用大模型、生图和联网搜索
数据库·网关
java_logo8 小时前
Docker Compose 部署 ClickHouse:快速搭建高性能列式数据库
数据库·clickhouse·docker·列式数据库·轩辕镜像·高性能数据库·clickhouse部署教程
Ai_easygo9 小时前
MCP 协议实战:用 Claude Desktop 连本地 SQLite,5 分钟搭一个能查数据的 AI 助手
jvm·人工智能·sqlite
TlSfoward9 小时前
抓包代理链路下的 TLS 指纹变化分析 TLSFOWARD抓包工具
数据库·爬虫·网络协议·搜索引擎·php
数智化管理手记9 小时前
账龄分析手工统计易遗漏?自动账龄分析工具怎么搭建
大数据·网络·数据库·人工智能·数据挖掘