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

Django之FBV和CBV模式

时间:2020-03-11 01:32:57      阅读:83      评论:0      收藏:0      [点我收藏+]

标签:self   war   app   patch   ret   conf   method   怎么   rgs   

FBV就是 url路由>>>业务处理函数的方式,CBV就是url路由>>>类 的处理业务方式。

最常用的就是FBV模式,就不用过多赘述,直接上CBV的实用代码。 

1、CBV的url路由该怎么写?

 1 from django.contrib import admin
 2 from django.urls import path
 3 from django.conf.urls import url
 4 from app01 import views
 5 
 6 urlpatterns = [
 7     path(admin/, admin.site.urls),
 8     url(r"cbv",views.cbv.as_view()),
 9     url(r"fbv",views.fbv),
10 ]

2、CBV的view视图中的业务处理类该怎么写?

 1 from django.shortcuts import render,redirect,HttpResponse
 2 from django.views import View
 3 # Create your views here.
 4 def fbv(request):
 5     if request.method=="POST":
 6         return HttpResponse("fbv.post")
 7     return render(request, "FBV.html")
 8 
 9 
10 class cbv(View): 
11     def dispatch(self, request, *args, **kwargs):
12         if request.method=="GET":
13             print("get方式经过dispatch...")
14         else:
15             print("post方式经过dispatch...")
16         result=super(cbv, self).dispatch(request, *args, **kwargs)
17         return result
18 
19     def get(self,request):
20         return render(request, "CBV.html")
21 
22     def post(self,request):
23         return HttpResponse("cbv.post")

具体格式参考上述代码,在CBV的view视图类中,每次执行GET或者POST函数时都先经过dispatch方法,因此可以在dispatch方法中定制一些GET和POST方法执行前公共的业务逻辑代码,从而简化代码。也可以在dispatch方法中定制自己想要的功能。

Django之FBV和CBV模式

标签:self   war   app   patch   ret   conf   method   怎么   rgs   

原文地址:https://www.cnblogs.com/sun-10387834/p/12459952.html

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