python - 关于Django中使用基于视图类的疑问

 mobiledu2502863347 发布于 2022-10-26 06:55

有些模块是不是可以不使用基于视图类呢?
比如 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)

类似于这个,普通模式代码量少,并且一目了然。反而基于视图类的有点。。。。

基于视图的提出的观点是不要减少代码量然后复用吗?
那么这种情况怎么选者呢?
谢谢

2 个回答
  • 有些功能不需要你去写逻辑了,比如 logout.

    我一般都是直接用系统的from django.contrib.auth.views import logout_then_login,然后配下url就行

    至于用基于方法的视图,还是基于类的视图,这个看你的选择了。

    一般基于类会更面向对象,喜欢面向对象语言的更喜欢用类视图来写,即使会多些几行代码,这样感觉有归属感,没错,我是一个对象,不是一个路人甲

    类的写法在 写 Mixin时会非常有用的,即用来写继承关系时。当然,你也可以写个通用方法,在每个需要的地方手动调一下也是没人管你的。

    2022-11-12 01:41 回答
  • 如果这个请求只是一个Restful API,不需要前台渲染的话,就不需要视图类了。

    2022-11-12 01:41 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有