现阶段django开发是用视图函数多呢?还是类通用视图?
看到有人在segmentfault中陈述:视图函数拓展性就没有这么灵活。类通用视图可以继承,可用使用装饰器等好处。
不过我做了一个单表的CURD(增删改查)之后,发现一个问题是。现实开发中有很多复杂的功能是多表操作的,类通用视图处理这些复杂的逻辑时就显得有些疲软了.....
各们Django使用者,有什么好建议,或者是我还没对类通用视图研究不透彻?请大家指点一下....
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
能用 cbv(class based view) 的方式开发就尽量别用 fbv(function based view)。Django 的开发组织也在推荐大家使用 cbv 的方式进行开发。用 cbv 优点非常多,最显而易见的就是提升开发效率的问题,基本一个简单的增删改查不需要写几行代码,只要弄清楚每个 view 是干嘛的拿来继承就好了,有额外的需要自己写个 mixin 扩展即可。个人感觉开发效率之少提升 2 倍以上。那么要说缺点(当然我觉得这个应该是优点,强制让你去阅读 Django 源码),就是需要理解熟悉 Django 自带的所有 view 的功能以及 view 每个方法都在干什么。只有理解了 view 的功能才能在一些复杂的操作中进行合适的继承编写合适的 mixin 。当你能熟练用 cbv 开发的时候相信你对 Django view 这块的源码也会熟悉很多。
没明白你想问什么,不管单表还是多表,都是 Model 层面的,而视图函数和视图类都是 View 层面的,它们之间会有什么掣肘吗?没有吧
大项目尽量用类通用视图
类视图的话可以共享一些数据,而使用普通的视图函数这方面就要写多一些代码。实际上,无论是哪种视图,多表的关联操作都是可以做到的,不过对于类视图一般用于RESTful的接口时用的比较多。
能用 cbv(class based view) 的方式开发就尽量别用 fbv(function based view)。Django 的开发组织也在推荐大家使用 cbv 的方式进行开发。用 cbv 优点非常多,最显而易见的就是提升开发效率的问题,基本一个简单的增删改查不需要写几行代码,只要弄清楚每个 view 是干嘛的拿来继承就好了,有额外的需要自己写个 mixin 扩展即可。个人感觉开发效率之少提升 2 倍以上。那么要说缺点(当然我觉得这个应该是优点,强制让你去阅读 Django 源码),就是需要理解熟悉 Django 自带的所有 view 的功能以及 view 每个方法都在干什么。只有理解了 view 的功能才能在一些复杂的操作中进行合适的继承编写合适的 mixin 。当你能熟练用 cbv 开发的时候相信你对 Django view 这块的源码也会熟悉很多。
没明白你想问什么,不管单表还是多表,都是 Model 层面的,而视图函数和视图类都是 View 层面的,它们之间会有什么掣肘吗?没有吧
大项目尽量用类通用视图
类视图的话可以共享一些数据,而使用普通的视图函数这方面就要写多一些代码。实际上,无论是哪种视图,多表的关联操作都是可以做到的,不过对于类视图一般用于RESTful的接口时用的比较多。