博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Django REST_framework Quickstart
阅读量:2225 次
发布时间:2019-05-09

本文共 1969 字,大约阅读时间需要 6 分钟。

局部避免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_exempturlpatterns = [    url(r'^myview/$', csrf_exempt(views.MyView.as_view()), name='myview'),]

 rest_framework的简单示例

 

以books为例:(1)创建表,数据迁移(2)创建表序列化类BookSerializerclass 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 APIViewclass 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    dispatch3 serializers组件

 

转载于:https://www.cnblogs.com/iyouyue/p/8746942.html

你可能感兴趣的文章
Go语言学习Part4-1:方法和接口
查看>>
Leetcode Go 《精选TOP面试题》20200628 69.x的平方根
查看>>
leetcode 130. Surrounded Regions
查看>>
【Python】详解Python多线程Selenium跨浏览器测试
查看>>
Jmeter之参数化
查看>>
Shell 和Python的区别。
查看>>
【JMeter】1.9上考试jmeter测试调试
查看>>
【虫师】【selenium】参数化
查看>>
【Python练习】文件引用用户名密码登录系统
查看>>
学习网站汇总
查看>>
【Loadrunner】性能测试报告实战
查看>>
【自动化测试】自动化测试需要了解的的一些事情。
查看>>
【selenium】selenium ide的安装过程
查看>>
【手机自动化测试】monkey测试
查看>>
【英语】软件开发常用英语词汇
查看>>
Fiddler 抓包工具总结
查看>>
【雅思】雅思需要购买和准备的学习资料
查看>>
【雅思】雅思写作作业(1)
查看>>
【雅思】【大作文】【审题作业】关于同不同意的审题作业(重点)
查看>>
【Loadrunner】通过loadrunner录制时候有事件但是白页无法出来登录页怎么办?
查看>>