django类视图
View
视图使用
这个类是通用类的基类,其它类都是继承自这个类
- views.py
from django.http import HttpResponse from django.views import View class IndexView(View): def get(self, request): return HttpResponse("以get方式请求") def post(self, request): return HttpResponse("以post方式请求") - ulrs.py
from django.urls import path from . import views urlpatterns = [ path("", views.IndexView.as_view(), name="index"), ]
继承View类视图之后,可以定义get和post等请求方式,也可以单独定义一个请求方式。如果只定义一种请求方式,而在访问时以另一种方式请求,就会发生错误,这时我们可以定义http_method_not_allowed函数来提示错误。
from django.http import HttpResponse
from django.views import View
class IndexView(View):
def post(self, request):
return HttpResponse("以post方式请求")
def http_method_not_allowed(self, request):
return HttpResponse("您当前采用的method是:%s,本视图只支持使用post请求!" % request.method)
除了get和post请求方式之外,还有 [‘put’,‘patch’,‘delete’,‘head’,‘options’,‘trace’]。
TemplateView
django.views,generic.base.TemplateView这个类视图是专门用来返回模板的。
- 两个常用属性
- template_name: 存储模板的路径
- get_context_data: 返回上下文数据, 也就是给模板传的参数
视图使用
- 1、创建类视图之前先在工程的目录下创建一个
templates文件夹,用于存放模板文件 - 2、给setting.py文件里的
TEMPLATES变量的DIRS键赋值 ->os.path.join(BASE_DIR, 'templates'

- 3、创建模板类视图
- 需要在模板中传参时
- views.py
from django.views.generic.base import TemplateView class Temp_View(TemplateView): template_name = 'school.html' def get_context_data(self, **kwargs): context = { "username": 'cmy'} return context - urls.py
from django.urls import path from . import views urlpattern
- views.py
- 需要在模板中传参时

本文介绍了Django中各类视图的应用方法,包括基础View、TemplateView及ListView的使用技巧,并详细展示了如何通过Paginator实现数据分页。
最低0.47元/天 解锁文章
1572

被折叠的 条评论
为什么被折叠?



