Dajngo的CBV和FBV
CBV:
class、 base、 view
路由:
url(r'students/', views.StudentsView.as_view()) 视图: from django.views import View class StudentsView(View): def get(self, request, *args, **Kwargs):
return HttpResponse('GET') def post(self, request, *args, **kwargs):
return HttpResponse('POST') def put(self, request, *args, **kwargs):
return HttpResponse('PUT') def delete(self, request, *args, **kwargs):
return HttpResponse('DELETE')
FBV:
functions、 base、 view
def users(request):
user_list = ['wyc', 'test']
return HttpResponse(json.dumps(user_list))
django中间件五种方法:
process_request
process_view
process_exception
process_response
process_render_template
用中间件做过什么?
权限
用户登录认证
django的csrf是怎么实现的:
原理:
请求拿去token, 然后验证是否是以前发送的, 如果是以前发送的就验证通过,否则失败。
解决办法:
from django.view.decorators.csrf import csrf_exempt @csrf_exempt # 表示不用认证
实现方式:
process_view方法
检查是否被 @csrf_exempt (免除csrf认证)
去请求体或cookie获取token csrf_protect # 函数认证 CBV解决csrf的问题
from django.utils.decorators import method_decorator 加到函数dispatch函数
@method_decorator
def dispatch(self, request, *args, **kwargs):
return super(StudentsView, self).dispatch(request, *args, **Kwargs) 第二种解决办法:
直接在类上边添加
@method_decorator(csrf_exempt, name='dispatch')
总结:
CBV: 基于用户的请求和方法来进行反射。
流程:
请求先到路由,路由再到View,View在到源码dispatch函数进行请求反射。
取消csrf认证,需要加到dispatch方法上,用装饰器的形式添加(method_decorator)来装饰。
扩展:
csrf
基于中间件的process_view方法来实现,
基于装饰器来给单独函数设置认证或无需认证。
Dajngo的CBV和FBV的更多相关文章
- python自动化开发-[第二十天]-form表单,CBV和FBV,序列化
		
1.CBV和FBV的用法 2.序列化用法 3.form表单 一.CBV和FBV 1.cbv是 class based view(基于类),fbv是function based view(基于函数) 2 ...
 - Django(视图 CBV、FBV)
		
day67 参考:http://www.cnblogs.com/liwenzhou/articles/8305104.html CBV和FBV 我们之前写过的都是基于函数的view,就叫FBV.还可以 ...
 - Django中的CBV和FBV
		
Django中的CBV和FBV 一. CBV CBV是采用面向对象的方法写视图文件. CBV的执行流程: 浏览器向服务器端发送请求,服务器端的urls.py根据请求匹配url,找到要执行的视图类,执 ...
 - django视图  CBV 和 FBV
		
目录 视图 CBV 和 FBV 什么是视图? FBV function based view 基于函数的视图 CBV class based view 基于类的视图 小技巧 CBV 如何获取页面请求类 ...
 - Django之CBV和FBV
		
Django之CBV和FBV CBV和FBV是C和F的区别: C是Class,F是Function 在请求中,有GET请求和POST请求. 在写CBV时,url是可以对应一个类的,在类中,分别写出GE ...
 - django补充CBV和FBV模式
		
django补充CBV和FBV模式FBV模式---函数:经常用的方式CBV模式---类CBV中url连接时函数名后面要接.as_view()class index(views.View): @... ...
 - Django框架(五)-- 视图层:HttpRequest、HTTPResponse、JsonResponse、CBV和FBV、文件上传
		
一.视图函数 一个视图函数,简称视图,是一个简单的Python 函数,它接受Web请求并且返回Web响应.响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片. ...
 - Django CBV和FBV
		
Django CBV和FBV Django内部CBV内部接收方法操作: 1.通过客户端返回的请求头RequestMethod与RequesrtURL,会以字符串形式发送到服务器端. 2.取到值后通过d ...
 - CBV和FBV
		
CBV和FBV 刚开始写的视图都是基于函数版本的,称为FBV,后来写了一个NB的叫CBV,就是基于类的 FBV就是在URL中的一个路径对应一个函数 urlpatterns = [ url(r'^adm ...
 
随机推荐
- centos7源码编译安装Subversion 1.9.5
			
svn是Subversion的简称,是一个开放源代码的版本控制系统.svn有两种运行方式:1.独立服务器(svn://xxx.xxx/xxx) 2.借助apache(http://svn.xxx.xx ...
 - Python Web学习笔记之TCP、UDP、ICMP、IGMP的解释和区别
			
TCP与UDP解释 TCP---传输控制协议,提供的是面向连接.可靠的字节流服务.当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据.TCP提供超时重发,丢弃重复数据, ...
 - 利用.bat(批处理)来删除KEIL编译生成的无用文件
			
新建一个.txt文件. 在里面输入如下内容: del *.bak /s del *.ddk /s del *.edk /s del *.lst /s del *.lnp /s del *.mpf /s ...
 - Python3基础 list 访问列表中的列表的元素
			
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
 - Python3基础 response.getcode 得到http的状态 200表示正常
			
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
 - arch/manjaro linux configuration
			
0. Installation SystemConfiguration: # 启动时选择第二项boot(non-free),Manjaro自带的驱动精灵会帮你安装好所需驱动,笔记本双显卡则会帮你安装b ...
 - 获取Spring项目配置文件元素
			
在开发中有时候要获取配置文件里的值,通常可以利用如下方式来读取: public class PropertyUtil { private static Properties p = new Prope ...
 - Adobe Reader 2019 Offline Installer, Free Download - Best PDF Reader
			
https://ridnt-b.blogspot.com/2018/01/adobe-reader-2018-free-download.html http://ardownload.adobe.co ...
 - 【eclipse】聚合工程maven启动Tomcat报错
			
严重: Error configuring application listener of class严重: Skipped installing application listeners due ...
 - ZOJ 3869 Ace of Aces
			
There is a mysterious organization called Time-Space Administrative Bureau (TSAB) in the deep univer ...