Class-based views¶ A view is a callable which takes a request and returns a response. This can be more than just a function, and Django provides an example of some classes which can be used as views. These allow you to structure your views and reuse code by harnessing inheritance and...
In a class-based view, this would become: fromdjango.httpimportHttpResponsefromdjango.viewsimportViewclassMyView(View):defget(self,request):# <view logic>returnHttpResponse('result') Because Django’s URL resolver expects to send the request and associated arguments to a callable function, not ...
而在class-based views中,你可以用不同的类实例的方法来响应不同的HTTP request,如: fromdjango.httpimportHttpResponsefromdjango.views.generic.baseimportViewclassMyView(View):defget(self, request):#<view logic>returnHttpResponse('result')defpost(self, request):#<view logic>returnHttpResponse('result')...
使用通用视图的第二个更强大的方法是从现有视图继承并覆盖子类中的属性(如template_name)或方法(例如get_context_data)以提供新的值或方法。 例如,考虑一个只显示一个模板about.html的视图。 Django有一个通用视图来执行此操作- TemplateView -所以我们可以将其子类化,并覆盖模板名称: # some_app/views.py from ...
Django 的 Class-Based Views(CBV)是一种以类为基础的视图定义方式。与传统的函数视图(FBV)不同,CBV 通过类的方法来处理 HTTP 请求,从而提供了一种更加面向对象的方式来处理视图逻辑。CBV 通过继承和组合,可以使代码更加模块化和可复用。 CBV 的优势包括: ...
Django 自学笔记兼学习教程第7章第1节——基于类的视图(Class-based views)介绍 点击查看教程总目录 1 介绍 Class-based views (CBVs) are views generated from models. Class-based views:基于模型自动生成的视图。 在web开发中,为模型(models)制作各种各样的视图是工作量很大的事情, ...
Using class-based views使用基于类的视图 基于类的视图允许您使用不同的类实例方法来响应不同的HTTP请求方法,而不是在单个视图函数中有条件地分支代码。 那么处理视图函数中的HTTP GET的代码将如下所示: from django.http import HttpResponse def my_view(request): ...
from django.shortcuts import render def level1(request) return(request,'XXX.html') 没有经过任何处理,直接指向一个 html。 这个步骤,完全可以通过 Class-Based Views 简化为: # url.py fromdjango.conf.urls import url from django.views.generic import TemplateView # 引入 TemplateView ...
对于这些场景,Django提供了几个class-based view来处理: ListView UpdateView CreateView DeleteView 这几个类视图分别对应着查询ListView、更新UpdateView、创建CreateView、删除DeleteView这几个操作。在整体上就可以分为查看、修改两个类型。下面,我们来通过一个例子来展现一下这几个View怎么使用。假设我们需要实现一个用...
FBV是Django视图中最简单的表示:它就是一个接收 HttpRequest 对象并返回一个 HttpResponse 的函数。 CBV是每个Django视图都被定义为一个扩展 django.views.generic.view 抽象类后的 Python 类。 GCBV是可以解决一些具体问题的内置的CBV集合,比如列表视图,创建,更新和删除视图等。 下面我们将探讨一些不...