Django之CBV和FBV

  CBV和FBV是C和F的区别:

    C是Class,F是Function

  在请求中,有GET请求和POST请求。

  在写CBV时,url是可以对应一个类的,在类中,分别写出GET和POST的方法。

  eg:在url中:

url(r'^login.html$',views.Login)

    在views中:Class根据url的提交方式,决定使用get方法,还是post方法。

class Login(request):
def get(self):
pass
def post(self):
pass   

  在请求来时,Login会去判断来个请求类型是post还是get。但是要先继承一个方法,django.views 中的 View。

from django.views import View
class Login(View):
def get(self,request): #request会封装请求的所有数据
#return HttpResponse('Login.get')
     return render(request,'login.html')
def post(self,request):
     print(request.POST.get('user'))
return HttpResponse('Login.post')

 login.html

<body>
<form method='POST' action='/login.html'>
<input type='text' name='user'/>
<input type='submit' value='提交'/>
</form>
</body>

  注意:form表单递交,是有POST和GET。ajax提交除了POST和GET还有好多提交方式。

  这里的request封装了request的请求的数据。

  在CBV的url中,都要在view里叫as_view()。

url(r'^login.html$',views.Login.as_view())

  在class View 方法中,有四种常见的方法:

    get查, post创建, put更新,delete删除

  这四种方法是Ajax提交是才能用的,get和post可以在from表单用。

----------------------------- 分割线 -----------------  

  在写C和F时,url找到相应中的类和函数中的请求方法,是用的反射getattr来实现的。

  在View中,先会执行dispath函数,在dispath函数中,对请求进行分类,看请求是post还是get。

def dispath(self,request,*args,**kwargs):
obj = surper(Login,self),dispath(request,*args,**kwargs)
return obj

  这个dispath就相当于一个装饰器。

-------- END ---------

Django之CBV和FBV的更多相关文章

  1. django补充CBV和FBV模式

    django补充CBV和FBV模式FBV模式---函数:经常用的方式CBV模式---类CBV中url连接时函数名后面要接.as_view()class index(views.View): @... ...

  2. Django(视图 CBV、FBV)

    day67 参考:http://www.cnblogs.com/liwenzhou/articles/8305104.html CBV和FBV 我们之前写过的都是基于函数的view,就叫FBV.还可以 ...

  3. Django的CBV与FBV

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

  4. Django的 CBV和FBV

    FBV CBV 回顾多重继承和Mixin 回到顶部 FBV FBV(function base views) 就是在视图里使用函数处理请求. 在之前django的学习中,我们一直使用的是这种方式,所以 ...

  5. django视图 CBV 和 FBV

    目录 视图 CBV 和 FBV 什么是视图? FBV function based view 基于函数的视图 CBV class based view 基于类的视图 小技巧 CBV 如何获取页面请求类 ...

  6. Django之 CBV和FBV

    FBV FBV(function base views) 就是在视图里使用函数处理请求. CBV CBV(class base views) 就是在视图里使用类处理请求. Python是一个面向对象的 ...

  7. Django的CBV和FBV

    一.FBV FBV(function base views) 就是在视图里使用函数处理请求,也是我们最开始接触和使用的方式,普通项目中最常见的方式. urls.py 1 2 3 4 urlpatter ...

  8. python测试开发django-73.django视图 CBV 和 FBV

    前言 FBV(function base views) 就是在视图里使用函数处理请求,这一般是学django入门的时候开始使用的方式. CBV(class base views) 就是在视图里使用类处 ...

  9. django 中CBV和FBV 路由写法的区别

    使用视图函数时, FBV: django完成URL解析之后,会直接把request对象以及URL解析器捕获的参数(比如re_path中正则表达捕获的位置参数或关键字参数)丢给视图函数 CBV: 这些参 ...

随机推荐

  1. Spring 中 ApplicationContext 和 BeanFactory 的区别

    //从ApplicationContext 中取 bean ApplicationContext ac = new ClassPathXmlApplicationContext ( "com ...

  2. [SDOI2016]墙上的句子

    题目描述 考古学家发现了一堵写有未知语言的白色墙壁,上面有一个n行m列的格子,其中有些格子内被填入了某个A至Z的大写字母,还有些格子是空白的. 一直横着或竖着的连续若干个字母会形成一个单词,且每一行的 ...

  3. Struts2 表单提交与execute()方法的结合使用

    1.创建web项目,添加struts2支持的类库,在web.xml中配置struts2过滤器. 2.创建名为UserAction的Action对象,并在其中编写execute()方法,代码如下所示: ...

  4. IOS应用开发版本控制工具之Versions使用,iosversions

    Versions版本控制工具破解版(Versions.zip)下载请见本博文附件.下载后在MAC安装完以后,图标是莲花状.见下图: 双击运行如下图:    点击Repository,连接SVN服务器R ...

  5. 1272 最大距离 只想到了dp

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1272 离散化后,用dp[i]表示向右,大于等于i这个数字的最大位置 dp ...

  6. Abp Framework中文文档上线

    感谢 ABP框架中国小组 给我们带来的ABP中文翻译,Web+为方便广大学习爱好者随时查阅,现推出了Gitbook风格的在线阅读文档:http://www.webplus.org.cn/documen ...

  7. Heart Beat

    实现关键: 1.纯css实现心形图(如果使用图片则无需) html代码: <!DOCTYPE html> <html> <head> <meta charse ...

  8. .NET 微信开发之 获取用户数据

    通过微信接口获取用户信息主要分为以下几个步骤: a.获取公众号的access_token b.通过查询所有用户OPenid接口获取所有用户. string url = "https://ap ...

  9. 掌握Spark机器学习库-07.14-保序回归算法实现房价预测

    数据集 house.csv 数据集概览 代码 package org.apache.spark.examples.examplesforml import org.apache.spark.ml.cl ...

  10. 'NSUnknownKeyException' … setValue:forUndefinedKey:]: …not key value coding compliant

    解决一个问题: 当我添加一个IBout, 报了如下错误 NSUnknownKeyException' … setValue:forUndefinedKey:]: …not key value codi ...