API 稳定性¶
Django 致力于 API 稳定性和向前兼容性。简而言之,这意味着您针对某个 Django 版本开发的代码将继续与未来的版本兼容。升级 Django 项目使用的版本时,您可能需要进行一些小的更改:请参阅您要升级到的版本或版本的发行说明中的“向后不兼容的更改”部分。
在将 API 稳定性作为非常高优先级的同时,Django 还致力于持续改进,并力求在我们提供的 API 中最终实现“一种方法”(最终)。这意味着当我们发现明显更好的方法时,我们将弃用并最终删除旧方法。我们的目标是提供一个高质量的现代、可靠的 Web 框架,鼓励所有使用它的项目采用最佳实践。通过增量改进,我们试图避免停滞和重大破坏性升级。
“稳定”的含义¶
在此上下文中,“稳定”意味着
所有公共 API(本文档中的所有内容)都不会在不提供向后兼容别名的情况下移动或重命名。
如果向这些 API 添加新功能(这非常有可能),它们不会破坏或更改现有方法的含义。换句话说,“稳定”并不一定意味着“完整”。
如果由于某种原因,必须删除或替换声明为稳定的 API,则会将其声明为已弃用,但至少会在两个功能版本中保留在 API 中。调用已弃用方法时会发出警告。
有关 Django 版本编号方案以及如何弃用功能的更多详细信息,请参阅正式版本。
如果没有弃用过程,我们只会破坏这些 API 的向后兼容性,除非错误或安全漏洞使其完全不可避免。
稳定的 API¶
一般来说,文档中涵盖的所有内容(内部区域中的任何内容除外)都被认为是稳定的。
例外¶
此稳定性和向后兼容性承诺有一些例外。
安全修复¶
如果我们发现安全问题(希望是有人遵循我们的安全报告策略),我们将尽一切努力修复它。这可能意味着破坏向后兼容性;安全胜于兼容性保证。
标记为内部的 API¶
某些 API 以几种方式明确标记为“内部”
某些文档会提到内部内容并将其作为内部内容提及。如果文档说明某些内容是内部的,我们保留更改它的权利。
以开头下划线 (
_
) 为前缀的函数、方法和其他对象。这是指示某些内容为私有的标准 Python 方法;如果任何方法以单个_
开头,则它是一个内部 API。