有些模块是不是可以不使用基于视图类呢?
比如 login 和 logout
普通模式:
def logout_views(request): logout(request) return HttpResponseRedirect('/')
基于视图类:
class LogoutViews(RedirectView): url = '/' def get(self, request, *args, **kwargs): logout(request) return super(LogoutViews, self).get(request, *args, **kwargs)
类似于这个,普通模式代码量少,并且一目了然。反而基于视图类的有点。。。。
基于视图的提出的观点是不要减少代码量然后复用吗?
那么这种情况怎么选者呢?
谢谢
有些功能不需要你去写逻辑了,比如 logout.
我一般都是直接用系统的from django.contrib.auth.views import logout_then_login
,然后配下url就行
至于用基于方法的视图,还是基于类的视图,这个看你的选择了。
一般基于类会更面向对象,喜欢面向对象语言的更喜欢用类视图来写,即使会多些几行代码,这样感觉有归属感,没错,我是一个对象,不是一个路人甲
类的写法在 写 Mixin时会非常有用的,即用来写继承关系时。当然,你也可以写个通用方法,在每个需要的地方手动调一下也是没人管你的。
如果这个请求只是一个Restful API,不需要前台渲染的话,就不需要视图类了。