类似图/中间键

在Django中也可以使用类来定义一个视图,称为类视图。使用类视图可以将视图对应的不同请求方式以类中的不同方法来区别定义。
配置路由时,使用类视图的as_view()方法来添加。

urlpatterns = [
# 类视图:注册
url(r'^register/$', views.RegisterView.as_view(), name='register'),
]

类视图使用装饰器:
在URL配置中装饰
urlpatterns = [
url(r'^demo/$', my_decorate(DemoView.as_view()))
]
在类视图中装饰:
@method_decorator(my_decorator)
def dispatch(self, *args, **kwargs):

method_decorator装饰器还支持使用name参数指明被装饰的方法

为全部请求方法添加装饰器
@method_decorator(my_decorator, name='dispatch')/
为特定请求方法添加装饰器
@method_decorator(my_decorator, name='get')

method_decorator的作用是为函数视图装饰器补充第一个self参数,以适配类视图方法。

中间件的定义方法

def my_middleware(get_response):
print('init 被调用')
def middleware(request):
print('before request 被调用')
response = get_response(request)
print('after response 被调用')
return response
return middleware
定义好中间件后,需要在settings.py 文件中添加注册中间件
多个中间件的执行顺序
在请求视图被处理前,中间件由上至下依次执行
在请求视图被处理后,中间件由下至上依次执行

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,446评论 19 139
  • Refer to: www.threemeal.com/blog/12/ 中间件 中间件是一个钩子框架,它们可以介...
    兰山小亭阅读 16,652评论 9 165
  • Django中间件 概念:Django中一个轻量级、底层的插件系统,可以介入Django的请求和响应处理过程,修改...
    梦醒家先生阅读 4,668评论 0 0
  • 写留言 73 tt 为什么有道云笔记保存后,今天用那个也显示昨天的文章被删除了呢? 412 作者 说明,不是微信出...
    我认识的人越多我越喜欢狗阅读 1,872评论 0 1
  • 我从梦中惊醒 惶如隔世的前朝碧玉 又如浣池的一息清水 如茅屋升起的一缕炊烟 又如多年未见的旧人 初见时微微扬起的嘴...
    一心客栈阅读 3,633评论 7 8