Django之CBV和FBV
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的更多相关文章
- django补充CBV和FBV模式
django补充CBV和FBV模式FBV模式---函数:经常用的方式CBV模式---类CBV中url连接时函数名后面要接.as_view()class index(views.View): @... ...
- Django(视图 CBV、FBV)
day67 参考:http://www.cnblogs.com/liwenzhou/articles/8305104.html CBV和FBV 我们之前写过的都是基于函数的view,就叫FBV.还可以 ...
- Django的CBV与FBV
FBV FBV(function base views) 就是在视图里使用函数处理请求. 在之前django的学习中,我们一直使用的是这种方式,所以不再赘述. CBV CBV(class base v ...
- Django的 CBV和FBV
FBV CBV 回顾多重继承和Mixin 回到顶部 FBV FBV(function base views) 就是在视图里使用函数处理请求. 在之前django的学习中,我们一直使用的是这种方式,所以 ...
- django视图 CBV 和 FBV
目录 视图 CBV 和 FBV 什么是视图? FBV function based view 基于函数的视图 CBV class based view 基于类的视图 小技巧 CBV 如何获取页面请求类 ...
- Django之 CBV和FBV
FBV FBV(function base views) 就是在视图里使用函数处理请求. CBV CBV(class base views) 就是在视图里使用类处理请求. Python是一个面向对象的 ...
- Django的CBV和FBV
一.FBV FBV(function base views) 就是在视图里使用函数处理请求,也是我们最开始接触和使用的方式,普通项目中最常见的方式. urls.py 1 2 3 4 urlpatter ...
- python测试开发django-73.django视图 CBV 和 FBV
前言 FBV(function base views) 就是在视图里使用函数处理请求,这一般是学django入门的时候开始使用的方式. CBV(class base views) 就是在视图里使用类处 ...
- django 中CBV和FBV 路由写法的区别
使用视图函数时, FBV: django完成URL解析之后,会直接把request对象以及URL解析器捕获的参数(比如re_path中正则表达捕获的位置参数或关键字参数)丢给视图函数 CBV: 这些参 ...
随机推荐
- poj 3281 Dining【最大流】
记得把牛拆掉!拆成两个点i和i'在中间连一条流量为1的边,来限制每头牛只能选一组 一般来讲是一种物品一个消费者各占一边,但是这里有两个物品,所以考虑把牛放在中间,s向所有的食物连流量为1的边,所有食物 ...
- bzoj 3239: Discrete Logging && 2480: Spoj3105 Mod【BSGS】
都是BSGS的板子题 此时 \( 0 \leq x \leq p-1 \) 设 \( m=\left \lceil \sqrt{p} \right \rceil ,x=i*m-j \)这里-的作用是避 ...
- (2)css的复合选择器与特性
css的复合选择器与特性 在本篇学习资料中,将深入了解css的相关概念,上一篇介绍的3种基本选择器的基础上,学习3种由基本选择器复合构成的选择器,然后再介绍css的两个重要的特性. 1.复合选择器 复 ...
- springboot(十一)SpringBoot任务
github地址: https://github.com/showkawa/springBoot_2017/tree/master/spb-demo/spb-brian-query-service 1 ...
- Qt - 锁屏界面加虚拟小键盘
一.实现效果 鼠标点击"密码输入栏",弹出虚拟键盘,输入锁屏密码后,点击虚拟键盘外部区域,则会隐藏虚拟键盘,再点击登录,成功进入主界面. 二.虚拟键盘-程序设计 2.1 frmNu ...
- [Usaco2005]Part Acquisition
Description The cows have been sent on a mission through space to acquire a new milking machine for ...
- 题解报告:poj 2185 Milking Grid(二维kmp)
Description Every morning when they are milked, the Farmer John's cows form a rectangular grid that ...
- Application,Service,Activity 三者的Context的应用场景
Application 的 context 不是万能的,所以也不能随便乱用,对于有些地方则必须使用 Activity 的 Context, 对于Application,Service,Activity ...
- spring入门笔记-(一)、spring boot HelloWorld
什么是spring boot Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员 ...
- scala学习笔记4:函数和闭包
以下主要记录的是看完scala in programming这本书functions and closures(第八章)后的要点总结. 1,函数可以存在的地方:函数方法,嵌套函数. 2,关于funct ...