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