码迷,mamicode.com
首页 > 其他好文 > 详细

Django框架之类视图

时间:2019-12-27 23:46:05      阅读:83      评论:0      收藏:0      [点我收藏+]

标签:rom   执行流程   class   att   不同   getattr   self   参数   视图   

所谓类视图就是用类定义的视图,其主要支持客户端在用不同的请求方式发起的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框架之类视图

标签:rom   执行流程   class   att   不同   getattr   self   参数   视图   

原文地址:https://www.cnblogs.com/chao666/p/12109972.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!