Django源码学习心得
django吧
全部回复
仅看楼主
level 2
1. 四层架构:GlobalCallbackHandlerClass -> MiddlewareCallbackHandlerClass -> PathCallbackResolverClass -> PathCallbackHandlerClass
2025年12月30日 14点12分 1
level 2
代码设计技巧学习心得
.
1. GlobalCallbackHandlerClass:WSGIHandler类(继承BaseHandler类,且实现了__call__方法)
  1.1 BaseHandler._get_response调用Middleware类
2. MiddlewareCallbackHandlerClass:Middleware类(不需继承基类,但必须定义__init__、__call__魔术方法,且可选地定义process_view、process_exception等钩子函数)
3. PathCallbackResolverClass:URLResolver类
4. PathCallbackHandlerClass:开发者自定义view函数
2025年12月30日 18点12分 2
level 2
代码设计技巧学习心得
.
1. 框架允许开发者自定义函数或类,只要开发者定义的函数或类符合约定即可
2. 框架通过hasattr函数判断开发者自定义类、对象是否具备某指定名称的属性,通过getattr函数指定对象和属性名获取对象的属性值
3. 框架通过callable函数判断参数是否“可调用的”
2025年12月30日 18点12分 3
常见用法:首先hasattr判断对象是否存在指定名字的“处理函数”属性,确定存在后用getattr把该属性取出,最后用callable检测该属性的取值是否可调用的
2025年12月30日 18点12分
level 2
代码设计技巧学习心得
.
1. hasattr、getattr
  1.1 setattr
2. callable
3. isinstance、issubclass
2025年12月30日 19点12分 4
1