Django之FBV和CBV模式

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方法中定制自己想要的功能。

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

时间: 2024-11-01 11:28:19

Django之FBV和CBV模式的相关文章

Django视图函数之FBV与CBV模式

FBV模式: FBV(function base views) 就是在视图里使用函数处理请求. 一般直接用函数写的都属于是FBV模式. veiws.py 1 from django.shortcuts import render,HttpResponse 2 # Create your views here. 3 4 def login(request): 5 if request.method=="GET": 6 return render(request,"login.h

django的FBV和CBV

title: python djano CBV FBV tags: python, djano, CBV, FBV grammar_cjkRuby: true --- python django的function的定义方法 在处理URL的调用方法的function里面,可能会这样定义 Fuction Based View 在视图中用函数来处理请求 def get(): if method == "GET": XXX def post(): if method == "POST

Django之请求生命周期及FBV/CBV模式

一.Http请求的过程1.http的请求/响应模式,先是用户通过前端页面发送一个http请求,请求内容包括三部分:请求头/空行/请求体(get方法没有请求体)例如:抓包如下:2.服务端就收到http的请求内容的字符串后,进行解析出相应的请求头(method /url/cookie等信息 )和请求体内容,并将请求体的内容转换成对应的key-value格式.3.服务端再通过url去匹配对应的URL路由(匹配规则是从上向下进行正则匹配,若匹配成功则停止不再向下匹配),匹配成功后找到views中对应的函

Django中请求的生命周期 和 FBV模式和CBV模式

Django的生命周期就是你的 一个请求所发生的整个流程 Django的生命周期内到底发生了什么呢?? 1. 当用户在浏览器中输入url时,浏览器会生成请求头和请求体发给服务端 请求头和请求体中会包含浏览器的动作(action),这个动作通常为get或者post,体现在url之中. 2. url经过Django中的wsgi,再经过Django的中间件,最后url到过路由映射表,在路由中一条一条进行匹配, 一旦其中一条匹配成功就执行对应的视图函数,后面的路由就不再继续匹配了. 3. 视图函数根据客

【Django】FBV模式和CBV模式

FBV(Function Base Views):一个url对应一个视图函数 CBV(Class Base views):一个url对应一个类 urls: urlpatterns = [ url(r'^fbv/',views.fbv), url(r'^cbv/',views.CBV.as_view()), ] views: from django.views import View class CBV(View): def get(self,request): ... def post(self

django中的FBV和CBV

django中请求处理方式有2种:FBV 和 CBV 一.FBV FBV(function base views) 就是在视图里使用函数处理请求. 看代码: urls.py from django.conf.urls import url, include # from django.contrib import admin from mytest import views urlpatterns = [ # url(r'^admin/', admin.site.urls), url(r'^in

django form表单组建使用及CBV模式

一.FBV和CBV FBV:是视图函数以函数的方式写逻辑代码 CBV:是视图以类的方式写逻辑代码 如CBV: views.py from django.shortcuts import render,HttpResponse,redirect from django.views import View from django.views.decorators.csrf import csrf_exempt,csrf_protect from django.utils.decorators imp

Django 【第二十一篇】中介模型以及优化查询以及CBV模式

一.中介模型:多对多添加的时候用到中介模型 自己创建的第三张表就属于是中介模型 class Article(models.Model): ''' 文章表 ''' title = models.CharField(max_length=64,verbose_name="文章标题") summary = models.CharField(max_length=244, verbose_name="文章概要") create_time = models.DateTimeF

django之路由分组,路由分发,FBV,CBV,ORM框架

django之路由分组,路由分发,FBV,CBV,ORM框架 今日的内容: a. 路由系统 1. 创建app 2. 路由的分组 3. 路由的分发 - 正则表达式匹配 b. django的orm(模型model) 1. 创建模型的步骤 2. orm基本的增删改查 3. 正向查询和反向查询 注意事项: 1. 前台传给后台一个列表时,后端如何接受: request.POST.getlist(字段名) 2. 前台传给后台一个列表时,需要在ajax请求中增加一个参数: traditional: true