局部避免crsf的方式

针对视图函数:

from django.views.decorators.csrf import csrf_exempt
@csrf_exempt
def foo(request):
return HttpResponse("foo")

针对CBV:

# 方式1  在类上方使用
@method_decorator(csrf_exempt,name="dispatch")
class IndexView(View):
# 方式2 在类的 dispatch 方法上使用 @csrf_exempt
@method_decorator(csrf_exempt)
def dispatch(self, request, *args, **kwargs):
print("hello world")
# 执行父类的dispatch方法
res=super(IndexView,self).dispatch(request, *args, **kwargs)
print("hello boy")
return res

在url中配置:

from django.views.decorators.csrf import csrf_exempt

urlpatterns = [
url(r'^myview/$', csrf_exempt(views.MyView.as_view()), name='myview'),
]

rest_framework的简单示例

以books为例:

(1)创建表,数据迁移
(2)创建表序列化类BookSerializer
class BookSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model=Book
fields="__all__" (3)创建视图类:
class BookViewSet(viewsets.ModelViewSet):
queryset = Book.objects.all()
serializer_class = BookSerializer (4) 设计url:
router.register(r'books', views.BookViewSet)

APIview

from rest_framework.views import APIView

class APIView(View):
def as_view():
view = super(APIView, cls).as_view(**initkwargs) # self.dispatch def dispatch():
# 重新封装request
request = self.initialize_request(request, *args, **kwargs)
self.request = request # 初始化操作
self.initial(request, *args, **kwargs) if request.method.lower() in self.http_method_names:
       # http_method_names = ['get', 'post', 'put', 'patch', 'delete', 'head', 'options', 'trace']
handler = getattr(self, request.method.lower(),self.http_method_not_allowed)
       # handler=self.get
response = handler(request, *args, **kwargs) # self.get(request, *args, **kwargs) 1 CBV :
as_view
dispatch 2 掌握API源码流程:
as_view
dispatch 3 serializers组件

Django REST_framework Quickstart的更多相关文章

  1. django rest_framework vue 实现用户登录

    django rest_framework vue 实现用户登录 后端代码就不介绍了,可以参考  django rest_framework 实现用户登录认证 这里介绍一下前端代码,和前后端的联调过程 ...

  2. Django rest_framework 实用技巧

    前言: 最近工作中需要用到Django rest_framework框架做API, 边学边写,记录了一些实际工作中需要用到的功能,不是很全也不系统,以后需要什么功能可以在这查询. 后续还会更新其它的用 ...

  3. Python之Django rest_Framework框架源码分析

    #!/usr/bin/env python # -*- coding:utf-8 -*- from rest_framework.views import APIView from rest_fram ...

  4. Python之Django rest_Framework(2)

    实例化: v1 = ["view.xxx.path.Role","view.xxx.path.Group",] 可以循环,循环出来的每一个不能实例化 如果把v1 ...

  5. 七、django rest_framework源码之视图

    1 绪言 当大家看大这篇博文的时候,应该对Django rest_framework中的CBV有所了解了,大致来说就是通过定义类来继承APIView类,并在类中定义get.post.put.delet ...

  6. 五、django rest_framework源码之版本控制剖析

    1 绪论 Djangorest_framework的版本控制允许用户更改不同客户端之间的行为,且提供了许多不同的版本控制方案.版本控制由传入的客户端请求确定,可以基于请求URL,也可以基于请求标头. ...

  7. 四、django rest_framework源码之频率控制剖析

    1 绪言 权限判定之后的下一个环节是访问频率控制,本篇我们分析访问频率控制部分源码. 2 源码分析 访问频率控制在dispatch方法中的initial方法调用check_throttles方法开始. ...

  8. 二、django rest_framework源码之认证流程剖析

    1 绪言 上一篇中讲了django rest_framework总体流程,整个流程中最关键的一步就是执行dispatch方法.在dispatch方法中,在调用了一个initial方法,所有的认证.权限 ...

  9. django rest_framework中将json输出字符强制为utf-8编码

    最近在和日本外包合作开发JIRA对接发布系统的版本单时, 遇到这个问题. 就是我们这边的输出浏览器显示为中文,而到了JIRA端就出现乱码. 查了文档,原来django rest_framework的默 ...

随机推荐

  1. mysql分组查询

    有一张学生选课表 Table: Subject_Selection Subject Semester Attendee --------------------------------- ITB001 ...

  2. 谷歌机器学习速成课程---降低损失 (Reducing Loss):随机梯度下降法

    在梯度下降法中,批量指的是用于在单次迭代中计算梯度的样本总数.到目前为止,我们一直假定批量是指整个数据集.就 Google 的规模而言,数据集通常包含数十亿甚至数千亿个样本.此外,Google 数据集 ...

  3. OC自动释放池autoreleasepool介绍

    自动释放池的机制是:它使得应用在创建新对象时,系统能够有效地管理应用所使用的内存. @autoreleasepool { statements } 在创建新对象时,并且系统未启动ARC特性,那么在使用 ...

  4. css系列(7)成品网页

        本节介绍用css和html组合起来写的页面.(代码可以直接运行)     (1)仿旧版腾讯微博注册页面:(文件夹地址:http://files.cnblogs.com/files/MenAng ...

  5. STM32f103的电阻触摸屏的五点校正算法

    源:STM32f103的电阻触摸屏的五点校正算法 STM32f103的触摸屏的设置与使用

  6. CSR1010 sdk蓝牙

    转:http://blog.csdn.net/lorain_lynies/article/details/52038640CSR1010 I/O开发须知:关于I/O操作的函数库被定义在头文件<p ...

  7. JSP笔记02——概述(转)

    不完全翻译,结合谷歌,一定主观性,还可能有误,原始内容地址:https://www.tutorialspoint.com/jsp/jsp_overview.htm 主要内容如下: 什么是JSP? 为什 ...

  8. ACM训练小结-2018年6月23日

    今天题目情况如下:    D题:SG函数相关.    相关知识忘光...已复习.    E题:丧心病狂的模拟题目.    F题:树分块+容斥.    想到了树上莫队,但是糟糕的是不会O(1)/O(lo ...

  9. Java基础面试集合

    1.面向对象的特征有哪些方面? 抽象 封装 继承 多态,多态性是指允许不同子类型的对象对同一消息作出不同的响应.简单的说就是用同样的对象引用调用同样的方法但是做了不同的事情.多态性分为编译时的多态性和 ...

  10. linux虚拟机ping通主机

    右键虚拟机,选择网络适配器,设置为桥接模式.然后关闭主机防火墙,ping就行了(一直ping是没有参数的)