Django中CBV模型的示例分析-创新互联

这篇文章将为大家详细讲解有关Django中CBV模型的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

做网站、成都做网站过程中,需要针对客户的行业特点、产品特性、目标受众和市场情况进行定位分析,以确定网站的风格、色彩、版式、交互等方面的设计方向。创新互联还需要根据客户的需求进行功能模块的开发和设计,包括内容管理、前台展示、用户权限管理、数据统计和安全保护等功能。

在view文件中编写一个类,并配置好路由

class Test(View):
 def get(self, request, *args, **kwargs):
 return HttpResponse('cbv_get')

 def post(self, request, *args, **kwargs):
 return HttpResponse('cbv_post')
url(r'test/',views.Test.as_view()),

通过as_view()进入查看源码

Django中CBV模型的示例分析

实际上views.Test.as_view()是存的一个内存地址,加括号被调用,执行了as_view方法里的view方法,具体看下图:

Django中CBV模型的示例分析

核心是dispatch方法,在dispatch方法中完成了分发功能。

Django中CBV模型的示例分析

若要在Test类中自定义dispatch方法,代码如下:

class Test(View):
 def dispatch(self, request, *args, **kwargs):
 # 加代码
 obj = super().dispatch(self, request, *args, **kwargs)
 # 加代码
 # 实现了一个类似装饰器的效果,比如post请求,如果是json,手动从request里body取出来 再转一下
 # 或者走的时候加点cookie
 return obj
 
 def get(self, request, *args, **kwargs):
 return HttpResponse('cbv_get')

 def post(self, request, *args, **kwargs):
 return HttpResponse('cbv_post')

流程总结:

CBV模型

  • 在views中写一个类,继承View,里面写get方法,post方法

  • 在路由中配置: url(r'^test/', views.Test.as_view()),实际上第二个参数位置,放的还是一个函数内存地址

  • 当请求来了,就会执行第二个参数(request,参数),本质上执行view()

  • view内部调用了dispatch()方法

  • dispatch分发方法,根据请求方式不同,执行的方法不同

关于“Django中CBV模型的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。


文章标题:Django中CBV模型的示例分析-创新互联
网站URL:http://bzwzjz.com/article/dpssch.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 四川成都网站设计 成都网站建设 成都网站制作 成都网站设计 成都品牌网站设计 手机网站制作 外贸网站设计方案 成都网站建设 高端网站设计 手机网站制作设计 成都网站制作 重庆网站设计 高端网站设计 成都网站制作 成都网站设计公司 移动手机网站制作 专业网站建设 网站建设公司 教育网站设计方案 成都做网站建设公司 阿坝网站设计 网站建设费用