首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

python测试开发django-73.django视图 CBV FBV

前言 FBV(function base views) 就是在视图里使用函数处理请求,这一般是学django入门的时候开始使用的方式。...CBV(class base views) 就是在视图里使用类处理请求,这是面向对象的编程方式。...面试的时候基本上都是问到:你平常写的视图是基于函数视图 (FBV),还是基于类的视图 (CBV),两者的区别在哪? 如果你只会写基于函数视图,那说明还处于初级入门的阶段了。...FBV 模式 FBV(function base views)在views.py文件中定义视图函数来处理用户请求,函数中通过 if 判断 request.method 请求方式是 GET 还是 POST...路由系统中必须使用 Myview.as_view() 替代视图函数 # views.py from django.shortcuts import render from django.http import

52610

03.Django基础三之视图函数

这个视图会返回一个HttpResponse对象,其中包含生成的响应。每个视图函数都负责返回一个HttpResponse对象。   Django使用请求和响应对象来通过系统传递状态。   ...然后,Django加载相应的视图,将这个HttpRequest对象作为第一个参数传递视图函数。   每个视图负责返回一个HttpResponse对象。 ?   ...视图层,熟练掌握两个对象即可:请求对象(request)响应对象(HttpResponse) 二 CBVFBV FBV(function base views) 就是在视图里使用函数处理请求。     ...Django会将这个对象自动传递给响应的视图函数,一般视图函数约定俗成地使用 request 参数承接这个对象。   ...Django会将这个对象自动传递给响应的视图函数,一般视图函数约定俗成地使用 request 参数承接这个对象。

5K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Django视图views

    视图函数一般写在各应用下的 views.py 文件里。 视图决定了 Web 应用的行为响应。...在 Django 中,主要有两种类型的视图: FBV:基于函数视图 CBV:基于类的视图 FBV(Function-Based Views)CBV(Class-Based Views)是两种处理视图的方式...它使用 Python 类来组织管理视图逻辑。在CBV中,每个视图通常是一个类方法,用于处理不同类型的 HTTP 请求。CBV提供了更多的灵活性可扩展性,允许你在不同的方法中组织视图逻辑。...请求与响应(以GETPOST举例) 客户端和服务器通常使用HTTP的方式进行数据传递,客户端向服务器发起对话时,会创建一个“请求对象”,而服务器回复客户端时会创建一个“响应对象”。...在函数视图中,通过解析 request 这个参数可以获取到客户端发起的请求方法(通常是 GET POST)。

    9810

    Django之URL(路由系统)用法

    路由系统 路由系统概念 简而言之,路由系统就是路径视图函数的一个对应关系。 django的路由系统作用就是使views里面处理数据的函数与请求的url建立映射关系。...使请求到来之后,根据urls.py里的关系条目,去查找到与请求对应的处理方法,从而返回给客户 端http页面数据 路由系统的格式 url(正则表达式,view视图函数/视图类,参数) django 项目中的...urlpatterns = [ url(r'^admin/', admin.site.urls), ] url()函数可以传递4个参数,其中2个是必须的:regexview,以及2个可选的参数...如果是简单捕获,那么捕获值将作 为一个位置参数进行传递,如果是命名捕获,那么将作为关键字参数进行传递。 kwargs: 任意数量的关键字参数可以作为一个字典传递给目标视图。...所谓FBVCBV 是指url view的对应关系 FBV function base view /url/ --> 函数 CBV class base view /url/ -->类 上述都是FBV

    1.8K10

    Django视图层与模板层

    一、视图视图函数(类)简称为视图,就是一个普通的函数(类),它的功能是接收web请求,并返回web响应....研究视图函数需要熟练掌握请求对象(HttpRequest)相应对象(HttpResponse) 1.1请求对象(HttpRequest) 1.1.1HttpRequest请求对象常用属性 #part1...,在发送给django 后会封装到request.body里,此时django为了方便我们提取数据,会request.body的数据进行进一步的处理,具 体如何处理呢,需要从form表单提交数据的编码格式说起...Django视图层由两种形式构成:FBV基于函数视图(Function base view)CBV基于类的视图(Class base view) 1.4.1FBV 我们前面使用的视图函数就是FBV...',{'n':n}) # 第二种,使用locals()会将当前所在名称空间中所有的名字全部传递给html页面 2.5模板的继承导入 在实际开发中,模板文件彼此之间可能会有大量的冗余代码,为此Django

    9.2K10

    如何Django 中同时使用普通视图 API 视图

    在本教程中,我们将学习如何Django 项目中有效地管理使用普通视图 API 视图。我们将从基础概念开始,逐步深入,涵盖必要的配置、代码示例以及最佳实践。1....Django 提供了强大的视图系统,使得开发者可以轻松地同时处理这两种类型的请求。2. 准备工作在开始之前,请确保你已经具备以下条件:Python Django 环境已经安装配置。...配置普通视图普通视图通常用于渲染 HTML 页面。我们将创建几个简单的视图来展示不同的页面。4.1 编写普通视图函数在 myapp1/views.py 中编写普通的视图函数。...总结通过本教程,你学习了如何Django 项目中同时使用普通视图 API 视图。我们涵盖了从设置项目、编写视图、配置 URL 路由到测试应用的整个流程。...希望本教程对你理解应用 Django 视图系统有所帮助!9.

    17400

    视图 vs. 函数视图

    视图 vs. 函数视图 Posted December 12, 2018 ? #Coding 基于类的视图(CBV)基于函数视图(FBV)到底有什么区别? 有什么优缺点? 本篇将会去探讨。...调用后, 视图将请求传递给dispatch() 方法,该方法将根据请求的类型(GET, POST, PUT, etc)执行响应的方法(详情参考django/views/generic/base.py,...#2 观点 「仅使用django.views.generic.View, 不用GV」 此观点认为, View 就足够了, 并且 View 是真正的CBV, 而通用视图则不是真正的 CBV....View 的确没有通用视图封装那么全, 但也说明了它比通用视图灵活。 在函数视图通用视图中间位置. #3 观点 「除非必要, 否则避免适用视图」 一般建议是从功能视图开始,这样更容易阅读理解。...优点缺点 有关 CBV FBV 的优缺点, 仅供参考.

    2.5K10

    python 终极篇 --- django

    Django的View(视图)                                          一个视图函数...CBVFBV                                          我们之前写过的都是基于函数的view,就叫FBV。还可以把view写成基于类的。...得到HttpResponse对象,返回django处理 fbv ---   基于函数视图     cbv ----基于类的视图                                  加装饰器...Django会将这个对象自动传递给响应的视图函数,一般视图函数约定俗成地使用 request 参数承接这个对象。 其实request参数就接收了页面请求....我们写的每个视图都需要实例化,填充返回一个HttpResponse。 HttpResponse类位于django.http模块中。

    1.6K10

    不会DRF?源码都分析透了确定不来看?

    为1的数据,这里尽量在body体里写全参数 局部修改:修改id为1的数据,修改啥写啥 删除一条数据:删除id为2的数据 CBV源码流程分析 因为DRF框架里大部分都是基于CBV...(视图类)写,所以流程是什么,如何执行需要了解,同时也方便理解APIView,顺便提一嘴APIView也是继承了View ----> class APIView(View) 这里需要强调一下,CBV路由归根结底还是...FBV都是函数的内存地址,比如views.类.as_view()底层仍然是函数的内存地址 CBV源码执行流程 '''views.py''' from django.views import View...且看分析源码执行过程~ '''请求来了在不考虑中间件的情况下,从路由的匹配关系视图函数来看''' 1、cbv路由写法:path('test/', views.TestView.as_view()) #...Django中写视图类继承的View是一样的,这里的(APIView)的as_view只是进行了简单处理去掉了csrf中间件校验,真实使用的还是View类中的as_view 3、然后还是闭包函数的返回值

    1.3K10

    Django中请求的生命周期

    FBV模式CBV模式 一个url对应一个视图函数,这个模式叫做FBV(Function Base Views) 除了FBV之处,Django中还有另外一种模式叫做CBV(Class Base views...()), ] 视图函数配置: from django.views import View class CBV(View): def get(self,request): return...会依次遍历路由映射表中的所有记录,一旦路由映射表其中的一条匹配成功了, 就执行视图函数中对应的函数名,这是fbv的执行流程 2.2 cbv方式请求的过程 当服务端使用cbv模式的时候,用户发给服务端的请求包含...从Django中返回的响应内容包含响应头响应体 在Django中,有的时候一个视图函数,执行完成后会使用HttpResponse来返回一个字符串给客户端....为返回给客户端的信息加一个响应头: 修改上面例子的视图函数为如下: from django.views import View class CBV(View): def dispatch(self

    2.7K100

    Django-DRF | 请求

    Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计Form(表单)的使用。...默认输入url的请求方式即为get,当请求方式为get时,若带有需要传递的其他参数,则会将该参数的namevalue补充在url中一并提交,post方式则将数据放在内容中一并提交,不再url中显示。...在浏览器发送的request数据包的header中,可以看到这些内容,例如: 一、CBV 视图里使用类处理请求,在url中一个路径对应一个类。...万事顺心') cbv 定义类需要继承 View url中需要添加 as_view() 类里面使用 from 表单提交,只有 get post 方法 类里面使用 ajax 发送数据,支持 restful...规范 'get'获取数据;'post'创建新数据;'put'更新;'patch'局部更新;'delete'删除; CBV 重新定义 dispatch 函数 所有方法都是通过 dispatch 这个函数反射执行

    65620

    Django进阶篇 Rest framework (一)

    django rest framework(下面简称 drf) 在 django 中,路由匹配之后,会进行路由分发,这个时候会有两种选择模式,分别是 FBV 与 CBV。...1、FBV fbv 就是在 url 中一个路径对应一个函数。 在视图函数中 2、CBV cbv 就是在 url 中一个路径对应一个类,drf 主要使用 CBV。...在视图函数中 在路由匹配的时候看到 path("image", image.ImageView.as_view()),那这个 as_view() 是什么,既然没有在视图类中定义这个 as_view()...django 源码,路径是 \django\views\generic\base.py 3、django 的请求周期 根据 CBV FBV django 的生命周期可以分两类 FBV:请求通过 uwsgi...CBV:请求通过 uwsgi 网关,中间件,然后进入路由匹配,这里就与 FBV 有区别了,因为不再是视图函数而是视图类,会先经过父类-View 的 dispath 方法,进行请求方法的判断,再分发到视图类的方法

    73830

    Django的请求生命周期

    FBV模式CBV模式 一个url对应一个视图函数,这个模式叫做FBV(Function Base Views) 除了FBV之处,Django中还有另外一种模式叫做CBV(Class Base views...()), ] 视图函数配置: from django.views import View class CBV(View): def get(self,request): return...会依次遍历路由映射表中的所有记录,一旦路由映射表其中的一条匹配成功了, 就执行视图函数中对应的函数名,这是fbv的执行流程 2.2 cbv方式请求的过程 当服务端使用cbv模式的时候,用户发给服务端的请求包含...从Django中返回的响应内容包含响应头响应体 在Django中,有的时候一个视图函数,执行完成后会使用HttpResponse来返回一个字符串给客户端....为返回给客户端的信息加一个响应头: 修改上面例子的视图函数为如下: from django.views import View class CBV(View): def dispatch(self

    55120

    Django学习笔记之CBVFBV

    FBV FBV(function base views) 就是在视图里使用函数处理请求。 在之前django的学习中,我们一直使用的是这种方式,所以不再赘述。...CBV CBV(class base views) 就是在视图里使用类处理请求。 Python是一个面向对象的编程语言,如果只用函数来开发,有很多面向对象的优点就错失了(继承、封装、多态)。...的class-based-view(以下简称cbv),首先要明白django引入cbv的目的是什么。...在django1.3之前,generic view也就是所谓的通用视图,使用的是function-based-view(fbv),亦即基于函数视图。...有人认为fbv比cbv更pythonic,窃以为不然。python的一大重要的特性就是面向对象。而cbv更能体现python的面向对象。cbv是通过class的方式来实现视图方法的。

    96810

    WEB框架本质第一个Django实例

    在MVC的解释中,视图描述了展现给用户的数据,是指所看到的数据,而不是如何看见它。在python中视图是指对某一特定URL的回调函数, 因为回调函数描述了所要展现的数据。模版用于将内容与展现分离。...在django中,视图描述了要展现的数据,而视图一般转交给模版。模版描述了数据如何展现。控制器则是指django框架本身, 通过URL配置,系统将一个请求发送到一个合适的视图。...FBV模式CBV模式 FBV 一个url对应一个视图函数,这个模式叫做FBV(Function Base Views) CBV CBV(Class Base views),即一个url对应一个类 例子...), ] 视图函数配置: from django.views import View class CBV(View): def get(self,request): return...会依次遍历路由映射表中的所有记录,一旦路由映射表其中的一条匹配成功了, 就执行视图函数中对应的函数名,这是fbv的执行流程 cbv方式请求的过程 当服务端使用cbv模式的时候,用户发给服务端的请求包含

    1.6K40
    领券