Django 基于函数的视图与基于类的视图

栏目: Python · 发布时间: 5年前

内容简介:对于基于函数的视图(FBV)和基于类的视图(CFB)常常给新手带来困惑。有多种办法可以做同样的事,该使用哪个?在最初的时候,Django 只能使用基于函数的视图。它们都是采用标准统一的函数形式:接受一个这种方法的好处是它们没有隐藏的行为,我们可以确切知道它在做什么。可以添加想要的装饰器,很大程度上都是所见即所得的。

起步

对于基于函数的视图(FBV)和基于类的视图(CFB)常常给新手带来困惑。有多种办法可以做同样的事,该使用哪个?

基于函数的视图

在最初的时候,Django 只能使用基于函数的视图。它们都是采用标准统一的函数形式:接受一个 request 对象作为参数并返回一个 repsponse 对象。

from django.shortcuts import render

def homepageView(request):
    return render(request, 'index.html')

这种方法的好处是它们没有隐藏的行为,我们可以确切知道它在做什么。可以添加想要的装饰器,很大程度上都是所见即所得的。

缺点就是随着逻辑的复杂,函数会变得很大,因为它除了处理业务逻辑,还要包含视图的逻辑。

基于类的视图

从 Django 1.3 开始添加了基于类的视图支持,通过继承,分发等让视图代码变得更简洁(但本质上还是FBV)。解决了代码冗长难以阅读的问题。

使用基于类的视图,需要了解其基础的继承结构,因为它所有代码都不像 FBV 那样明显,你会发现有些结构代码更难理解。

通用的基于类的视图

Django 从中更进一步的发展出通用的类的视图(GCBV),它处理常见的用例,例如 显示模板 ,以 列表形式 显示内容等。这部分代码在 django.views.generic 中。它们更加简洁且强大,然而它们很难定制,依然要深入内部了解底层的方法和继承结构。Django基于类的通用视图有这些: https://ccbv.co.uk/


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

敏捷软件开发

敏捷软件开发

Robert C.Martin,、Micah Martin / 邓辉、孙鸣 / 人民邮电出版社 / 2010-12 / 79.00元

要想成为一名优秀的软件开发人员,需要熟练应用编程语言和开发工具,更重要的是能够领悟优美代码背后的原则和前人总结的经验——这正是本书的主题。本书凝聚了世界级软件开发大师Robert C. Martin数十年软件开发和培训经验,Java版曾荣获计算机图书最高荣誉——Jolt大奖,是广受推崇的经典著作,自出版以来一直畅销不衰。 不要被书名误导了,本书不是那种以开发过程为主题的敏捷软件开发类图书。在......一起来看看 《敏捷软件开发》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

随机密码生成器
随机密码生成器

多种字符组合密码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具