千家信息网

CBV和FBV视图具体是什么样的

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,CBV和FBV视图具体是什么样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。CBV和FBV视图FBV(functionbasevi
千家信息网最后更新 2026年11月04日CBV和FBV视图具体是什么样的

CBV和FBV视图具体是什么样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

CBV和FBV视图

  FBV(functionbaseviews)就是在视图里使用函数处理请求。

  之前都是FBV模式写的代码,所以就不写例子了。

  CBV(classbaseviews)就是在视图里使用类处理请求。

  Python是一个面向对象的编程语言,如果只用函数来开发,有很多面向对象的优点就错失了(继承、封装、多态)。所以Django在后来加入了Class-Based-View。可以让我们用类写View。这样做的优点主要下面两种:

  提高了代码的复用性,可以使用面向对象的技术,比如Mixin(多继承)

  可以用不同的函数针对不同的HTTP方法处理,而不是通过很多if判断,提高代码可读性。

  Django的url是将一个请求分配给可调用的函数的,而不是一个class。针对这个问题,class-basedview提供了一个as_view()静态方法(也就是类方法),调用这个方法,会创建一个类的实例,然后通过实例调用dispatch()方法,dispatch()方法会根据request的method的不同调用相应的方法来处理request(如get(),post()等)。到这里,这些方法和function-basedview差不多了,要接收request,得到一个response返回。如果方法没有定义,会抛出HttpResponseNotAllowed异常。

CBV传参,和FBV类似,有名分组,无名分组

  url写法:无名分组的

  url(r'^cv/(\d{2})/',views.Myd.as_view(),name='cv'),

  url(r'^cv/(?P\d{2})/',views.Myd.as_view(name='xxx'),name='cv'),#如果想给类的name属性赋值,前提你的Myd类里面必须有name属性(类属性,定义init方法来接受属性行不通,但是可以自行研究一下,看看如何行通,意义不大),并且之前类里面的name属性的值会被覆盖掉。

关于CBV和FBV视图具体是什么样的问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。

方法 视图 属性 函数 问题 处理 不同 代码 对象 分组 优点 实例 就是 更多 帮助 解答 多态 易行 有名 差不多 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技工作委员会主任 西安纸贵互联网科技有限公司 苏州找大状互联网科技有限公司 互联网金融监管科技数据 奔汉互联网科技 天下捷融互联网科技 郑州华宇互联网科技 亿人帮互联网科技 一五八零互联网科技 新华互联网科技校企合作 青海省互联网新科技 成都铂石互联网科技做什么的 互联网还是高科技吗 浙江互联网科技研学营 互联网科技与大数据专业 开一家科技互联网公司需要多少钱 东莞新华互联网科技学校 中科明德北京互联网科技 卡尔迅互联网科技有限公司 现代科技的标志之一的互联网 A股互联网金融科技公司 兼蜜互联网科技 上海万想互联网科技 成都仁贤领冠互联网科技有限公司 互联网巨头投资的硬核科技 开启互联网科技时代小说 上海宁丞科技互联网 互联网科技扶贫时间 元气玛特互联网科技公司是外包吗 互联网界的黑科技
0