如何确定给定代码的Django版本



我在Django有一个站点。如何知道(通过观察代码(它需要哪个版本的Django,需要哪个Python?

猜测Django的版本并不容易。通常,如果添加了一个适当的需求文件(如requirements.txt(,该文件会指定版本,例如:

# requirements.txt
Django==3.1

如果没有,那么您将需要查看所使用的函数。您可以查看发行说明,了解哪些功能已被删除。如果您的程序使用函数X,并且该函数已被删除(不推荐使用(,则我们知道该版本将比该版本旧。

例如,如果我们查看Django 3.1的发行说明,我们会看到:

django.db.models.fieldsdjango.core.exceptions.FieldDoesNotExist的兼容性导入已删除。

如果您的代码包含一行:

from django.db.models.fields import FieldDoesNotExist

这意味着您的项目不能使用django-3.1,否则会产生错误。您还可以查找该版本中引入的功能,并查看是否使用了这些功能。如果是这样的话,那么Django的版本至少是3.1。您可以对Django版本执行二进制搜索,以轻松查找Django的版本。但通常情况下,一个项目不需要特定的版本,但可以使用范围的版本,因为该项目根本不依赖于某些新功能。

您可以在Python的发行说明中执行同样的操作。例如,如果我们查看Python 3.8的新增功能,那么我们会看到:

有一种新的语法:=,它将值分配给变量,作为更大表达式的一部分。它被亲切地称为";海象操作员;因为它长得像海象的眼睛和獠牙。

这意味着,如果您的代码包含walrus运算符,那么您就知道这至少是python-3.8。

最新更新