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. 【插件开发】—— 7 SWT布局详解,不能再详细了!

    前文回顾: 1 插件学习篇 2 简单的建立插件工程以及模型文件分析 3 利用扩展点,开发透视图 4 SWT编程须知 5 SWT简单控件的使用与布局搭配 6 SWT复杂空间与布局搭配 前面几篇都提到了S ...

  2. [POI2009]Kon

    Description 火车沿途有N个车站,告诉你从每一站到每一站的人数,现在查票员只能查K次票,每次查票可以控制目前在车上的所有乘客的车票.求一个查票方案,使得控制的不同的乘客尽量多. (显然对同一 ...

  3. 洛谷 P1501 [国家集训队]Tree II

    看来这个LCT板子并没有什么问题 #include<cstdio> #include<algorithm> using namespace std; typedef long ...

  4. ACM_平面、空间分割问题(递推dp)

    折线分割平面 Time Limit: 2000/1000ms (Java/Others) Problem Description: 我们看到过很多直线分割平面的题目,今天的这个题目稍微有些变化,我们要 ...

  5. jsp的简介

    https://www.w3cschool.cn/jsp/jsp-intro.html

  6. 使用 ServerSocket 进行文件上传,以及用Tomcat启动ServerSocket时,会卡死解决

    服务器端代码 import java.io.BufferedOutputStream; import java.io.FileOutputStream; import java.io.IOExcept ...

  7. Django model 反向引用中的related_name

    转自:https://blog.csdn.net/lanyang123456/article/details/68962515 问题: 定义表Apple: class Apple( models.Mo ...

  8. spark on yarn模式下内存资源管理(笔记2)

    1.spark 2.2内存占用计算公式 https://blog.csdn.net/lingbo229/article/details/80914283 2.spark on yarn内存分配** 本 ...

  9. AndroidStudio启动App时,数据取不到。

    最近在用AndroidStudio开发App的时候,所连的服务器如果是换成本机上的,那么启动App的时候数据就读取不出来,连其它电脑上的服务器就是正常的,如下: 05-11 09:36:57.178 ...

  10. PHP exif扩展方法开启详解(亲测)

    本节主要介绍了如何开启PHP exif扩展方法,主要在于对php.ini文件的修改 服务器配置说明: 1.在php.ini文件中找到;extension=php_exif.dll,去掉前面的分号 2. ...