Django框架之类视图

Posted chao666

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django框架之类视图相关的知识,希望对你有一定的参考价值。

所谓类视图就是用类定义的视图,其主要支持客户端在用不同的请求方式发起的HTTP请求。

首先,我们需要明确一下类视图的好处:

1.代码可读向高;

2.相对于视图函数具有更高的代码复用性;

3.便于维护。

类视图的定义格式如下:

# 1. 导入视图模块
from django.views.generic import View

class
ObjectView(View): """2. 定义一个类视图"""   


  # 3.编写视图函数 def get(self, request): """处理GET请求""" return HttpResponse(以GET请求方式发起的HTTP请求) def post(self, request): """处理POST请求""" return HttpResponse(以POST请求方式发起的HTTP请求)

在类视图定义的时候我们需要注意一下几点:

1. 类视图必须继承View类;

2. 类视图中的方法必须以请求方式的小写形式来命名;

视图函数我们编写完了,那么接下我们就要配置路由了。

我们需要在子路由中添加上一下代码:

urlpatterns = [
    # 视图函数:注册
    # url(r‘^index/$‘, views.index, name=‘index‘),
    # 类视图:注册
    url(r^index_get/$, views.ObjectView.as_view(), name=ObjectView),
]

这里注意类视图一定要调用as_view()方法。

下面我来简述一下as_view()方法的执行流程:

1. 类视图在路由中调用as_view()方法,

2. as_view()方法语法上是一个闭包,它会调用它的内层函数view(),

3. view()会将请求的对象及参数接收,传递给dispatch()方法并调用dispatch()方法,

4. dispatch()方法会接收传递的参数,并且通过python中的底层函数getattr()获取到根据请求方式确定的类视图中的方法。

5. 最后再将方法的引用逐层返回,从而完成类视图中的方法的调用。

为类视图添加装饰器

装饰器对大家来说,我相信都不

以上是关于Django框架之类视图的主要内容,如果未能解决你的问题,请参考以下文章

如何在Django视图中使用for循环返回每次迭代[关闭]

Django REST框架--认证和权限

如果我们使用 django 通用视图,如何发送成功消息

Django框架-Django视图(views)系统

Django框架----视图层

Django框架之视图层汇总