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: 这些参 ...
随机推荐
- Spring 中 ApplicationContext 和 BeanFactory 的区别
//从ApplicationContext 中取 bean ApplicationContext ac = new ClassPathXmlApplicationContext ( "com ...
- [SDOI2016]墙上的句子
题目描述 考古学家发现了一堵写有未知语言的白色墙壁,上面有一个n行m列的格子,其中有些格子内被填入了某个A至Z的大写字母,还有些格子是空白的. 一直横着或竖着的连续若干个字母会形成一个单词,且每一行的 ...
- Struts2 表单提交与execute()方法的结合使用
1.创建web项目,添加struts2支持的类库,在web.xml中配置struts2过滤器. 2.创建名为UserAction的Action对象,并在其中编写execute()方法,代码如下所示: ...
- IOS应用开发版本控制工具之Versions使用,iosversions
Versions版本控制工具破解版(Versions.zip)下载请见本博文附件.下载后在MAC安装完以后,图标是莲花状.见下图: 双击运行如下图: 点击Repository,连接SVN服务器R ...
- 1272 最大距离 只想到了dp
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1272 离散化后,用dp[i]表示向右,大于等于i这个数字的最大位置 dp ...
- Abp Framework中文文档上线
感谢 ABP框架中国小组 给我们带来的ABP中文翻译,Web+为方便广大学习爱好者随时查阅,现推出了Gitbook风格的在线阅读文档:http://www.webplus.org.cn/documen ...
- Heart Beat
实现关键: 1.纯css实现心形图(如果使用图片则无需) html代码: <!DOCTYPE html> <html> <head> <meta charse ...
- .NET 微信开发之 获取用户数据
通过微信接口获取用户信息主要分为以下几个步骤: a.获取公众号的access_token b.通过查询所有用户OPenid接口获取所有用户. string url = "https://ap ...
- 掌握Spark机器学习库-07.14-保序回归算法实现房价预测
数据集 house.csv 数据集概览 代码 package org.apache.spark.examples.examplesforml import org.apache.spark.ml.cl ...
- 'NSUnknownKeyException' … setValue:forUndefinedKey:]: …not key value coding compliant
解决一个问题: 当我添加一个IBout, 报了如下错误 NSUnknownKeyException' … setValue:forUndefinedKey:]: …not key value codi ...