django上传文件名相同_Django基础(40): 如何正确升级Django版本

Django的版本更新比较频繁,基本上一年至少升级一次。那么如何升级项目的Django版本呢? 一个简单解决方法是使用pip升级,如下所示。如果你不指定Django版本号, 那么pip将安装最新Django发布版本。

pip install --upgrade django==3.1.0

如果事情真是这么简单就好了。每次Django升级都会放弃对低版本Python及老版本数据库的支持,并且还会弃用一些方法或功能。尽管升级Django版本有很多因素需要考虑,但升级还是有很多好处的,比如:

  • 添加了新功能和改进。

  • 错误已修复。

  • 较旧版本的Django最终将不再收到安全更新。

  • 在每个新的Django版本可用时进行升级,使代码库保持最新,从而减轻了以后的升级工作量。

本文总结了在升级Django版本过程中一些需要考虑的事项,可以帮助您使升级过程尽可能的顺利。

django上传文件名相同_Django基础(40): 如何正确升级Django版本_第1张图片

必读

在升级前,您首先应该熟悉新Django版本中所做的更改:

  • 从当前Django版本之后的版本(直到您计划升级到的版本), 开始阅读每个“最终”版本的发行说明。

  • 查看相关版本的弃用时间表。

要特别注意向后不兼容的更改,以清楚地了解成功升级所需的内容。在大多数情况下,升级Django版本时需要检视是否需要对现有项目代码进行修改,不能只升级Django版本就完了。

如果你的版本升级跨越多个版本(比如从2.0到2.2), 官方推荐先对比每个版本的变化((从2.0到2.1到2.2),进行逐级升级。对于每个功能版本,请使用最新的修补程序版本(例如,对于2.1,请使用2.1.15)。从一个LTS升级到另一个LTS时,建议使用相同的增量升级方法。

如果你希望及时了解Django各个版本的最新变化,请关注大江狗的微信公众号【Python Web与Django开发】。

相关阅读

Django 3.2主要变化抢先看!

Django 3.1版本正式发布,主要变化有哪些?

支持异步的Django 3.X来了,你准备好了吗? Django 3.0新特色与变化详解。

依赖

在大多数情况下,也有必要升级到与Django相关的依赖项的最新版本。如果Django版本是最近发布的,或者如果您的某些依赖项维护得不好,则您的某些依赖项可能尚未支持新的Django版本。在这些情况下,您可能必须等到依赖项的新版本发布后再升级到最新Django版本

在升级Django版本时,以下几个依赖项检查必需铭记于心:

  • 新版Django是否支持现有Python版本,是否需要同时升级Python版本

  • 通过PIP安装的第三方包是否支持现有Python版本和Django版本,是否需要升级

  • 新版Django是否支持现有数据库版本,是否需要升级数据库

举个例子:

2020年8月发布的Django 3.1版本仅支持Python 3.6, 3.7和3.8版本,如果你的Python版本还是3.5版,光升级Django版本是不够的。

解决弃用警告

升级之前,最好解决使用当前版本的Django时项目引起的所有弃用警告。在升级之前先修复这些警告可帮助你了解需要对哪些代码进行修改。

在Python中,弃用警告默认会被静音。您必须使用python -Wa 命令行选项或配置PYTHONWARNINGS 环境变量。例如,要在运行测试时显示警告:

$ python -Wa manage.py test

如果您使用pytest,你可以使用如下命令:

PYTHONWARNINGS=always pytest tests --capture=no

第三方应用程序可能会使用一些弃用的API,以支持Django的多个版本,因此,已安装的第三方软件包中出现弃用警告不一定表示存在问题。如果软件包不支持最新版本的Django,请考虑提出问题或发送请求。

安装

准备就绪后,你就可以安装新的Django版本了。如果你使用的是虚拟环境且这是一次重大更新,建议先设置所有依赖项的新环境。

如果您使用pip安装了Django ,则可以使用--upgrade或-U选项升级:

$ python -m pip install -U Django

测试

设置新环境和升级Django版本后,还请为您的应用程序运行完整的测试套件。这时启用弃用警告同样很有用。使用如下命令,弃用警告就会显示在测试输出中:

$ python -Wa manage.py test

运行测试后,请修复所有故障。当您有了新的发行说明时,通过重构代码以消除任何过时的警告,也可能是利用Django中新功能的好时机。

部署

您足够确信自己的应用程序可以使用新版本的Django时,就可以开始部署 升级的Django项目了。如果您使用的是Django提供的缓存,则应考虑在升级后清除缓存。否则,您可能会遇到问题,例如,如果您在缓存已pickled的对象时,因为不能保证这些对象与Django各个版本都是兼容的。

升级Django版本你学会了吗?

大江狗

2020.10.24

相关阅读

Django基础(39): 如何给数据库添加约束(Constraints)

Django基础(38): 如何设置支持多语种网站及国际化

Django上传图片不成功,不能显示或不能更新问题汇总及解决方案集锦

Django更改模型过程中易出现的问题及解决方案

django上传文件名相同_Django基础(40): 如何正确升级Django版本_第2张图片

你可能感兴趣的:(django上传文件名相同,python升级版本命令,查看django版本,程序运行依赖的重要文件版本不对)