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

相关推荐
数智园区合作社9 小时前
问数平台怎么把同一个指标锁成一个数
大数据·数据库·人工智能·ai
lbb 小魔仙10 小时前
Windows搭建PaddleOCR+飞书Webhook自动打卡通知机器人:识别、推送与远程触发完整教程
数据库·人工智能·prometheus·时序数据库
captain37611 小时前
MyBatis操作数据库(入门2)
java·数据库·spring boot·后端·spring·mybatis
心中有你021411 小时前
Java实现Dijkstra最短路径算法(邻接表 + 优先队列)
java·数据库·算法
龙亘川12 小时前
综合素质评价业务建模:从过程性评价到成长档案全链路闭环
数据库·智慧城市·数据可视化
数据库小组12 小时前
NineData 实战教程:MySQL 5.5 数据迁移同步到 MySQL 8.0(跨版本升级)
数据库·mysql·mysql优化·数据库开发·数据库迁移·版本升级·数据复制
zhangjw3412 小时前
1-5 PostgreSQL 数据类型全集:基础类型、字符串、数值、时间类型
数据库·postgresql
王中阳Go13 小时前
5.27 分钟干完后端和全部测试:一场三小时笔试的五个失分点,四个不在代码上
大数据·数据库·人工智能·后端·大语言模型
cnskylee13 小时前
【MySQL】麒麟V10 SP3系统安装MySQL-Commercial-8.0.46
数据库·mysql·adb
梦幻通灵13 小时前
修改MySQL数据库递增序列【持续更新】
数据库·mysql