局部避免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组件

最新文章

  1. YYStock开源----iOS股票K线绘制第二版
  2. Jetty+Xfire 嵌入式webService应用实践
  3. 清理系统 cmd
  4. linux安装Mac的默认Monaco字体
  5. 列表 list
  6. jquery form表单序列号
  7. hadoop2.2编程: 数据压缩
  8. Tomcat启动错误【Error listenerStart】
  9. redis 梳理笔记(二)
  10. Java并发框架——AQS阻塞队列管理(二)——自旋锁优化
  11. kernel笔记——内核编译与进程管理
  12. css布局 - 两栏自适应布局的几种实现方法汇总
  13. 极简版 卸载 home 扩充 根分区--centos7 xfs 文件格式
  14. Delphi XE 5,Rad Studio XE 5 官方下载(附破解),更新 Update 1,Help Update 1
  15. c++并行计算库TBB和PPL的基本用法
  16. postgresql----文本搜索类型和检索函数
  17. sql优化常用命令总结
  18. hdu——1873(优先队列)
  19. jQuery几个经典表单应用整理回想
  20. 余弦相似度及基于python的三种代码实现、与欧氏距离的区别

热门文章

  1. 20170401 错了两天的-XML解析
  2. 【WEB HTTP】缓存
  3. More on Class Loading and Initialization
  4. JavaScript:学习笔记(3)——正则表达式的应用
  5. 算法寒假实习面试经过之 滴滴(电话一面二面 offer)
  6. TOGAF和BABOK
  7. python 课堂笔记-for语句
  8. 在控制台中实现“单词竞猜”游戏 C# 猜词游戏
  9. java MD5Utils 加密工具类
  10. 使用git从本地上传至git码云远程仓库