在学习DRF之前~我们要先复习一些知识点~~

FBV和CBV

学习Django的时候~我们已经学习过了CBV以及FBV~~我们来复习一下~~

什么是FBV和CBV呢~~

  FBV 基于函数的视图

  CBV 基于类的视图

也就是说我们是用函数编写视图~还是类编写视图~~我们来看下两个的简单实现~~

urlpatterns = [
path('admin/', admin.site.urls),
path('test_fbv', test_fbv),
path('test_cbv', TestCBV.as_view())
]
def test_fbv(request):
return HttpResponse("ok") class TestCBV(View):
def get(self, request):
return HttpResponse("ok")

我们可以看到,我们的CBV首先执行了as_view()方法,那我们看下我们这个方法里做了什么~

我们可以看出~CBV在内部做了一个分发~本质和FBV是一样的~~

以后做接口开发的时候,我们就要用CBV,我们之前学了restful规范,现在就很容易理解我们为什么用CBV了。

面向资源编程,并且用HTTP的请求方式来对资源进行操作,还要遵循这些方法的语义,所以我们选择CBV编写我们接下来的视图函数。

复习FBV与CBV的更多相关文章

  1. FBV和CBV区别

    FBV和CBV区别         def dispatch(self, request, *args, **kwargs):        # 做分发的        if request.meth ...

  2. python 视图 (FBV、CBV ) 、Request 和Response对象 、路由系统

    一.FBV和CBV1.基于函数的view,就叫FBV(Function Based View) 示例: def add_book(request): pub_obj=models.Publisher. ...

  3. django请求生命周期,FBV和CBV,ORM拾遗,Git

    一.django 请求生命周期 流程图: 1. 当用户在浏览器中输入url时,浏览器会生成请求头和请求体发给服务端请求头和请求体中会包含浏览器的动作(action),这个动作通常为get或者post, ...

  4. django——FBV与CBV

    引言 FBV FBV(function base views) 就是在视图里使用函数处理请求. 在之前django的学习中,我们一直使用的是这种方式,所以不再赘述. CBV CBV(class bas ...

  5. Django之FBV与CBV

    一.FBV与CBV FBV(function based views),即基于函数的视图:CBV(class based views),即基于类的视图,也是基于对象的视图.当看到这个解释时,我是很萌的 ...

  6. python 全栈开发,Day84(django请求生命周期,FBV和CBV,ORM拾遗,Git)

    一.django 请求生命周期 流程图: 1. 当用户在浏览器中输入url时,浏览器会生成请求头和请求体发给服务端请求头和请求体中会包含浏览器的动作(action),这个动作通常为get或者post, ...

  7. 一、虚拟环境.二、路由配置主页与404.三、2.x路由分发.四、伪静态.五、request对象.六、FBV与CBV.七、文件上传.

    一.虚拟环境 ''' 解决版本共存 1. 用pycharm选择File点击NewProject然后选择virtualenv创建一个纯净环境 2. 打开下载的目录将venv文件夹下的所有文件(纯净的环境 ...

  8. django基础 -- 4. 模板语言 过滤器 模板继承 FBV 和CBV 装饰器 组件

    一.语法 两种特殊符号(语法): {{ }}和 {% %} 变量相关的用{{}},逻辑相关的用{%%}. 二.变量 1. 可直接用  {{ 变量名 }} (可调用字符串, 数字 ,列表,字典,对象等) ...

  9. django中的FBV和CBV

    django中请求处理方式有2种:FBV 和 CBV 一.FBV FBV(function base views) 就是在视图里使用函数处理请求. 看代码: urls.py from django.c ...

随机推荐

  1. Codeforces Round #524 (Div. 2) C. Masha and two friends 思路

    题目:题目链接 思路:直接计数显然是不好处理的,但分情况讨论只要不写错这题是一定可以出的,但这样基本做完这个题就没时间做其他题了,但当时我就这么蠢的这样做了,比赛一个半小时的时候突然发现一个似乎可行的 ...

  2. 字符编码,ASCII、Unicode与UTF-8的理解

    首先我们先要明白的两点是:1.计算机中的信息都是由二进制的0和1储存的:2.我们再计算机屏幕上看到的各种字符都是计算机系统按照一定的规则将二进制数字转换而来的. 一.基本概念. 1.字符集(chars ...

  3. eeeeeeeeeee

    http://58.241.123.38/hot.cdn.baidupcs.com/file/91623e76f776475da9c3223cdac861f0?xcode=68983c005f6e3c ...

  4. python中迷茫的编码问题

    1.理清一些知识点: python默认的编码格式: ASCII(py2) unicode(py3) 查看默认编码:sys.defaultencoding 修改默认编码:#coding = utf-8 ...

  5. rest_framework序列化

    1.序列化 1)拿到queryset 2)将queryset 给序列化类 serializer = IdcSerializer(idc)    #单个对象 serializer = IdcSerial ...

  6. SXCPC2018 nucoj1999 占领城市

    #include <iostream> #include <cstring> #include <cstdio> #include <queue> us ...

  7. C#入门篇5-7:流程控制语句 continue语句

    #region continue语句 public class ContinueApp { public static void Fun1() { //标签打印显示1…30,若能被3整除则不打印. ; ...

  8. leetcode 【 Search in Rotated Sorted Array II 】python 实现

    题目: 与上一道题几乎相同:不同之处在于array中允许有重复元素:但题目要求也简单了,只要返回true or false http://www.cnblogs.com/xbf9xbf/p/42545 ...

  9. Effictive C++ 学习记录

    这是前段时间看的书,整理到这里吧,以后查看也方便. 这些条款需要反复查看. 条款01:视C++为一个语言联邦 条款02:尽量用const.enum.inline替换#define 条款03:尽可能的使 ...

  10. mysql安装 以及跳过密码登录重设

    修改MySQL的登录设置: vi /etc/my.cnf 在[mysqld]的段中加上一句:skip-grant-tables 例如: [mysqld] datadir=/var/lib/mysql ...