博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Diango路由映射FBV和CBV
阅读量:5214 次
发布时间:2019-06-14

本文共 1589 字,大约阅读时间需要 5 分钟。

django中请求处理方式有2种:FBV(function base views) 和 CBV(class base views),换言之就是一种用函数处理请求,一种用类处理请求。

FBV

# url.pyfrom django.conf.urls import url, includefrom mytest import views urlpatterns = [    url(r‘^index/‘, views.index),]# views.pyfrom django.shortcuts import render  def index(req):    if req.method == ‘POST‘:        print(‘method is :‘ + req.method)    elif req.method == ‘GET‘:        print(‘method is :‘ + req.method)    return render(req, ‘index.html‘)

 

CBV

# urls.pyfrom mytest import views urlpatterns = [    # url(r‘^index/‘, views.index),    url(r‘^index/‘, views.Index.as_view()),]# views.pyfrom django.views import View class Index(View):    def get(self, req):        print(‘method is :‘ + req.method)        return render(req, ‘index.html‘)     def post(self, req):        print(‘method is :‘ + req.method)        return render(req, ‘index.html‘)# 注:类要继承 View ,类中函数名必须小写。
# cbv 模式下继承了django的view类# 在请求来临的时候,会调用继承类的 dispatch 方法# 通过反射的方法它会去调用自己写的视图函数, 那么这便是一个切入点,可以在自己的 cbv 视图中,重写这个方法。 class View(object):    def dispatch(self, request, *args, **kwargs):        # Try to dispatch to the right method; if a method doesn't exist,        # defer to the error handler. Also defer to the error handler if the        # request method isn't on the approved list.        if request.method.lower() in self.http_method_names:            handler = getattr(self, request.method.lower(), self.http_method_not_allowed)        else:            handler = self.http_method_not_allowed        return handler(request, *args, **kwargs)
CBV模式下的一个拓展

 

转载于:https://www.cnblogs.com/huangjm263/p/8781621.html

你可能感兴趣的文章
类别的三个作用
查看>>
【SICP练习】85 练习2.57
查看>>
runC爆严重安全漏洞,主机可被攻击!使用容器的快打补丁
查看>>
Maximum Product Subarray
查看>>
solr相关配置翻译
查看>>
通过beego快速创建一个Restful风格API项目及API文档自动化(转)
查看>>
解决DataSnap支持的Tcp长连接数受限的两种方法
查看>>
Synchronous/Asynchronous:任务的同步异步,以及asynchronous callback异步回调
查看>>
ASP.NET MVC5 高级编程-学习日记-第二章 控制器
查看>>
Hibernate中inverse="true"的理解
查看>>
高级滤波
查看>>
使用arcpy添加grb2数据到镶嵌数据集中
查看>>
[转载] MySQL的四种事务隔离级别
查看>>
QT文件读写
查看>>
C语言小项目-火车票订票系统
查看>>
15.210控制台故障分析(解决问题的思路)
查看>>
BS调用本地应用程序的步骤
查看>>
常用到的多种锁(随时可能修改)
查看>>
用UL标签+CSS实现的柱状图
查看>>
mfc Edit控件属性
查看>>