django 如何修复兼容性?
How django fix the compatibility?
最近沉迷于Django
,想知道开发者是如何兼容不同的Django
版本的?不说变化的细节,只说 API 的 name
和 API.
的 path
这是一个例子:
在 Django 1.10
之前 settings.py
Django provides django.utils.deprecation.MiddlewareMixin to ease creating middleware classes that are compatible with both MIDDLEWARE
and the old MIDDLEWARE_CLASSES
. All middleware classes included with Django are compatible with both settings.
我尝试的是:
import django
if django.get_version() > '1.11.0':
MIDDLEWARE= ('...','....')
else:
MIDDLEWARE_CLASSES = ('...','....')
Django 的弃用政策旨在让您可以同时支持多个版本的 Django。
即使 Django 1.10 中添加了 MIDDLEWARE
,您仍然可以在 Django 1.0 和 1.11 中使用 MIDDLEWARE_CLASSES
。
起初,您会使用MIDDLEWARE_CLASSES
。这将允许您支持(例如)Django 1.8、1.9、1.10 和 1.11 LTS。
然后,当你想支持 Django 2.0 时,你会切换到 MIDDLEWARE
,并放弃对 Django 1.10 和更早版本的支持,只支持 Django 1.11 和 Django 2.0。
如果您尝试保持对多个版本的 Django 的支持,例如Django 1.8、Django 1.11和Django 2.0,那么这可能会导致代码更复杂。请注意,Django 1.11 LTS 是最早受支持的 Django 版本。所有早期版本现在都不受支持,并且不会收到安全修复程序。
最近沉迷于Django
,想知道开发者是如何兼容不同的Django
版本的?不说变化的细节,只说 API 的 name
和 API.
path
这是一个例子:
在 Django 1.10
之前 settings.py
Django provides django.utils.deprecation.MiddlewareMixin to ease creating middleware classes that are compatible with both
MIDDLEWARE
and the oldMIDDLEWARE_CLASSES
. All middleware classes included with Django are compatible with both settings.
我尝试的是:
import django
if django.get_version() > '1.11.0':
MIDDLEWARE= ('...','....')
else:
MIDDLEWARE_CLASSES = ('...','....')
Django 的弃用政策旨在让您可以同时支持多个版本的 Django。
即使 Django 1.10 中添加了 MIDDLEWARE
,您仍然可以在 Django 1.0 和 1.11 中使用 MIDDLEWARE_CLASSES
。
起初,您会使用MIDDLEWARE_CLASSES
。这将允许您支持(例如)Django 1.8、1.9、1.10 和 1.11 LTS。
然后,当你想支持 Django 2.0 时,你会切换到 MIDDLEWARE
,并放弃对 Django 1.10 和更早版本的支持,只支持 Django 1.11 和 Django 2.0。
如果您尝试保持对多个版本的 Django 的支持,例如Django 1.8、Django 1.11和Django 2.0,那么这可能会导致代码更复杂。请注意,Django 1.11 LTS 是最早受支持的 Django 版本。所有早期版本现在都不受支持,并且不会收到安全修复程序。