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方法中定制自己想要的功能。
Django之FBV和CBV模式的更多相关文章
- Django视图函数之FBV与CBV模式
FBV模式: FBV(function base views) 就是在视图里使用函数处理请求. 一般直接用函数写的都属于是FBV模式. veiws.py from django.shortcuts i ...
- Django之FBV与CBV
一.FBV与CBV FBV(function based views),即基于函数的视图:CBV(class based views),即基于类的视图,也是基于对象的视图.当看到这个解释时,我是很萌的 ...
- django的FBV和CBV
title: python djano CBV FBV tags: python, djano, CBV, FBV grammar_cjkRuby: true --- python django的fu ...
- django的FBV和CBV的装饰器例子
备忘 def auth(func): def inner(request,*args,**kwargs): u = request.COOKIES.get('username111') if not ...
- Django之FBV和CBV的用法
FBV FBV,即 func base views,函数视图,在视图里使用函数处理请求. 以用户注册代码为例, 使用两个函数完成注册 初级注册代码 def register(request): &qu ...
- Django的FBV和CB
Django的FBV和CBV FBV FBV(function base views) 就是在视图里使用函数处理请求. 在之前django的学习中,我们一直使用的是这种方式,所以不再赘述. CBV C ...
- Django中请求的生命周期 和 FBV模式和CBV模式
Django的生命周期就是你的 一个请求所发生的整个流程 Django的生命周期内到底发生了什么呢?? . 当用户在浏览器中输入url时,浏览器会生成请求头和请求体发给服务端 请求头和请求体中会包含浏 ...
- django基础 -- 4. 模板语言 过滤器 模板继承 FBV 和CBV 装饰器 组件
一.语法 两种特殊符号(语法): {{ }}和 {% %} 变量相关的用{{}},逻辑相关的用{%%}. 二.变量 1. 可直接用 {{ 变量名 }} (可调用字符串, 数字 ,列表,字典,对象等) ...
- Django生命周期,FBV,CBV
一. Django生命周期 首先我们知道HTTP请求及服务端响应中传输的所有数据都是字符串,在Django中,当我们访问一个的url时,会通过路由匹配进入相应的html网页中.Django的请求生命周 ...
- django请求生命周期,FBV和CBV,ORM拾遗,Git
一.django 请求生命周期 流程图: 1. 当用户在浏览器中输入url时,浏览器会生成请求头和请求体发给服务端请求头和请求体中会包含浏览器的动作(action),这个动作通常为get或者post, ...
随机推荐
- C223 生产版本BAPI
1.事务代码:C223 2.调用函数CM_FV_PROD_VERS_DB_UPDATE "-----------------------------@斌将军----------------- ...
- 备忘 springboot 整合ehcache,注入CacheManager时提示 required a bean of type 'org.springframework.cache.CacheManager' that could not be found
问题因人而异,此处仅做备忘 整合过程: 1.添加maven依赖 <dependency> <groupId>net.sf.ehcache</groupId> < ...
- ios-class-guard - iOS代码混淆与加固实践
目录 ios-class-guard - iOS代码混淆与加固实践 摘要 引言 一.class-dump 二.ios-class-guard 混淆原理 三.ios-class-guard 混淆结果 ...
- vue权限管理
https://www.bilibili.com/video/BV1nq4y1i7BU/?spm_id_from=333.788.recommend_more_video.6&vd_sourc ...
- Vue - 组件通信(父子单向传递、父子相互传递、祖孙隔代传递)
父组件向子组件单向传递 父组件:引入子组件后,通过属性绑定的形式,将值传入子组件: ` ` 子组件:子组件通过props接收父组件传入的值; ` {{sonGetParam}} ` 子组件向父组件单向 ...
- java基础(13)--静态变量、静态代码块、实例代码块
一.静态变量/静态代码块特点: 1.类加载时执行静态代码块,并初始化静态变量 2.先于main()执行 3.只加载一次 4.可访问静态变量,不可访问实例变量 二.实例语句块: 1.需要实例化,对象 ...
- 每天学五分钟 Liunx 101 | 存储篇:LVM
LVM LVM(Logical Volume Manager),逻辑卷管理器.一种高级文件系统管理方式,它可以动态扩展文件系统. LVM 的示意图如下所示:
- Servlet系列:生命周期(init、 service、destroy)详解
Servlet的生命周期是由Web容器(如Tomcat)管理的,包括以下三个阶段: 加载和实例化:当Web应用程序启动时,Web容器会加载和实例化Servlet.加载和实例化过程可以在应用程序启动时自 ...
- Meta AI新发布的超大规模语言模型-OPT-175B
Meta AI在2022年5月3日新发布的OPT-175B模型,该模型是现阶段第一个模型参数超过千亿级别的开放模型,其次该模型与GPT-3相比,更加开放及便于访问. 具体开放性表现在如下几个方面: ...
- [java] - JavaBeans 获取 session
RegServlet // 保存到 session request.getSession().setAttribute("user", user); userinfo.jsp // ...