python - 关于Django中使用基于视图类的疑问
伊谢尔伦
伊谢尔伦 2017-04-18 09:57:25
[Python讨论组]

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

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

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

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(2)
PHP中文网

如果这个请求只是一个Restful API,不需要前台渲染的话,就不需要视图类了。

怪我咯

有些功能不需要你去写逻辑了,比如 logout.

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

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

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

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号