为什么Django中的View类违反了DRY原则?
Django中两个View类的存在原因及是否违反DRY原则
这其实并没有违反DRY原则,django.views.View只是django.views.generic.base.View的一个导入别名,并非重复定义的独立类。
Django这么设计主要出于两个核心原因:
- 向后兼容:早期Django版本的通用视图结构和现在不同,后来重构时把核心View类迁移到了
generic.base包下,但为了让老项目不用大规模修改代码,就在django.views包中保留了这个导入别名,确保旧代码仍能正常运行。 - 简化使用:这个别名让开发者可以用更简洁的路径导入View类,不用写冗长的
django.views.generic.base.View,降低了代码的冗余度,提升开发效率。
你可以通过一段简单的代码验证这一点:
import django.views import django.views.generic.base # 打印两个类的身份比较结果 print(django.views.View is django.views.generic.base.View)
执行后输出会是True,说明这两个引用指向的是同一个类对象,完全不存在重复定义的情况。
内容的提问来源于stack exchange,提问作者krishan kansal
相关产品推荐
相关产品推荐

