django的FBV和CBV

一 . 什么是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 参考链接】

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,874评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,102评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,676评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,911评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,937评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,935评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,860评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,660评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,113评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,363评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,506评论 1 346
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,238评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,861评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,486评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,674评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,513评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,426评论 2 352

推荐阅读更多精彩内容

  • Api 接口 高山山书写例子 resources.py#!coding=utf-8import jsonfrom ...
    入间阅读 405评论 0 0
  • 开发模式普通开发模式(前后端放一起)前后端分离后端开发为前端提供URL(API/接口的开发)Django中的 FB...
    xinmin阅读 294评论 0 0
  • sudo apt install mysql-server mysql-client pip install py...
    v_c61b阅读 694评论 0 0
  • Django: csrf防御机制 csrf攻击过程 1.用户C打开浏览器,访问受信任网站A,输入用户名和密码请求登...
    lijun_m阅读 1,057评论 0 0
  • 常说工作要“讲方法”。何谓工作方法?简单说就是:①凡事有记录(目的是将来追溯或者总结);②凡事有计划(有目标、有方...
    行与心田阅读 186评论 0 0