美文网首页
django的FBV和CBV

django的FBV和CBV

作者: Forever_f59e | 来源:发表于2019-07-09 11:51 被阅读0次

一 . 什么是FBV&CBV

FBV -Function Base VIew
CBV-Class Base Viev
  • FBV实现方法:

      def user(request):
        if request.method == 'GET':
            return HttpResponse('FBV GET')
        if request.method == 'POST':
            return HttpResponse('FBV POST')
         if request.method == 'DELETE':
            return HttpResponse('FBV DELETE')
         if request.method == 'PUT':
            return HttpResponse('FBV PUT')
      路由:url(r'^fuser/',views.user),
    
  • CBV实现方法:

      class User(View):
          def get(self, request, *args, **kwargs):
              return HttpResponse('FBV GET')
    
          def post(self, request, *args, **kwargs):
              return HttpResponse('FBV POST')
    
          def put(self, request, *args, **kwargs):
              return HttpResponse('FBV PUT')
    
          def delete(self, request, *args, **kwargs):
              return HttpResponse('FBV DELETE')
      路由:url(r'^cuser/',views.User.as_view())
    
  • 注意 继承自view ,view主要功能是以 类反射实现的: url路由->as_view->view函数->dispatch()函数.

查找View内部实现调用的步骤

反射查找1.png
反射查找2.png
反射查找3.png

CBV的映射方法常用四种

  • 1. hasattr(obj,name_str): 判断objec是否有name_str这个方法或者属性 ---> 通过hasattr 判断属性/方法是否存在。
  • 2. getattr(obj,name_str): 获取object对象中与name_str同名的方法或者函数 --->获取对象中的方法或函数 。
  • 3. setattr(obj,name_str,value): 为object对象设置一个以name_str为名的value方法或者属性 --> 更改,或添加一个新的属性或方法。
  • 4. delattr(obj,name_str): 删除object对象中的name_str方法或者属性 --- > 删除对象中的方法或属性。

什么是RESTFUL?

RESTFUL只是一个规范,我们可以去遵循,能够使你写的接口更规范

规则1.API与用户的通讯协议,总是使用HTTPs协议

2.https://www.baidu.com/api/cuser(推荐这个方式)

3.面向资源的编程

4.API的版本部署规则(写API接口的时候要添加版本号)

5.不同的操作,使用不同的请求方式 get post put patch delete

6.过滤方式规范(url地址后添加参数)指定返回记录的数量

7.常见的状态码 2xx 3xx 4xx 5xx.

8.错误信息的返回(key-value形式)

9.不同路由的申请,往往对应不同的返回结构

10.根据id拼接成一个url路径 [{'user':'lisi','age':18,'url':'https://www.baidu.com/api/user/1/'}]

【django-rest-framework 参考链接】

相关文章

  • DRF进阶

    一、Django的FBV和CBV FBV:Function-base views基于函数的视图CBV:Class-...

  • django中的FBV和CBV

    django中请求处理方式有2种:FBV 和 CBV FBV FBV(function base views) 就...

  • Django-FBV 和 CBV

    FBV 和 CBV django中请求处理方式有2种: FBV(function base views)** 就是...

  • Django 的 cbv

    正如我们了解到的,Django 写视图函数有两种写法:cbv 和 fbv。cbv 提倡使用类来写,fbv 使用函数...

  • Django中的CBV

    django中请求处理方式有2种:FBV 和 CBV CBV CBV(class base views) 就是在视...

  • Django之FBV和CBV(dispatch方法)

    一、FBV与CBV在我们日常学习Django中,都是用的FBV(function base views)方式,就是...

  • Django的CBV和FBV

    django提供了两种对应关系。 views.py中就是使用的FBV。 urls.py中使用: CBV的方式: u...

  • django的FBV和CBV

    一 . 什么是FBV&CBV FBV -Function Base VIew CBV-Class Base Vie...

  • Django使用CBV处理请求

    在Django中有两种基本的处理用户请求的方式,分别是FBV和CBV,这里讲的是关于使用CBV处理用户请求的方式 ...

  • Django-视图CBV执行流程详解

    FBV和CBV其实就是要么写函数要么写类,那么内部原理是怎么实现? FBV写法 CBV写法 原理 FBV可以直接通...

网友评论

      本文标题:django的FBV和CBV

      本文链接:https://www.haomeiwen.com/subject/cbtxkctx.html