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

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

内容简介:对于基于函数的视图(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/


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

查看所有标签

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

规划算法

规划算法

拉瓦利 / 2011-1 / 99.00元

《规划算法》内容简介:规划是人类智慧的结晶,规划问题广泛地存在于人们的日常工作和生活中。现在,规划已涉及计算机科学、人工智能、力学、机械学、控制论、对策论、概率论、图论、拓扑学、微分几何、代数几何等许多现代科学领域。《规划算法》是作者多年来教学和科研工作的总结,系统地介绍了规划领域中的基础知识和最新成果。作者将三个相对独立的学科:机器人学、人工智能和控制论巧妙地结合在一起。《规划算法》给出了大量内......一起来看看 《规划算法》 这本书的介绍吧!

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

多种字符组合密码

SHA 加密
SHA 加密

SHA 加密工具

html转js在线工具
html转js在线工具

html转js在线工具