zoukankan      html  css  js  c++  java
  • 视图和路由

    视图

      第一种方法:

    -from rest_framework.mixins import ListModelMixin, CreateModelMixin
                # class PublishView(GenericAPIView, ListModelMixin, CreateModelMixin):
                #     queryset = Publish.objects.all()
                #     serializer_class = PublishSerializers
                #
                #     def get(self, request):
                #         return self.list(request)
                #
                #     def post(self, request):
                #         # 添加一条数据
                #         return self.create(request)

      第二种方法:

    ListCreateAPIView 继承了GenericAPIView, ListModelMixin, CreateModelMixin
                # class PublishView(GenericAPIView, ListModelMixin, CreateModelMixin):
                # class PublishView(ListCreateAPIView):
                #     queryset = Publish.objects.all()
                #     serializer_class = PublishSerializers

      第三种方法:

    路由:url(r'^publish/$', views.PublishView.as_view({'get': 'list', 'post': 'create'})),
        url(r'^publish/(?P<pk>d+)', views.PublishView.as_view({'get': 'retrieve', 'put': 'update','delete':'destroy'})),
    from rest_framework.viewsets import ModelViewSet
    class PublishView(ModelViewSet):
        queryset = Publish.objects.all()
        serializer_class = PublishSerializers

      第四种方法:ViewSetMixin 它有什么作用?用了它之后,视图类中不需要写get,post,put方法了,自己定义方法就可以了 让请求方法对应到自己定义的方法上,配置路由

    路由控制    
      三种:
        -一种基本路由:url(r'^publish/$', views.PublishView.as_view()),
        -半自动路径:views.PublishView.as_view({'get': 'list', 'post': 'create'}))
       -必须继承:ViewSetMixin
          -继承ViewSetMixin的先后顺序
        -全自动路由:(基本不用)
          -from rest_framework import routers
          # 生成一个router对象
          router=routers.DefaultRouter()
          # 需要传两个参数,第一个参数就是匹配的路径,第二个参数,是视图类
          router.register('publish',views.PublishView)
       url('', include(router.urls)),
          #自动生成四个路由(PublishView必须继承ModelViewSet)
    响应器:(基本上不需要你配置)
      局部配置
      视图类中:
        -renderer_classes=[JSONRenderer,BrowsableAPIRenderer]
      全局配置
      在setting中:
        REST_FRAMEWORK = {
          'DEFAULT_RENDERER_CLASSES':['rest_framework.renderers.JSONRenderer']
        }
  • 相关阅读:
    AFNet3.0上传图片
    最新 AFNetworking 3.0 简单实用封装
    iOS开发密码输入数字和字母混合
    IOS用CGContextRef画各种图形(文字、圆、直线、弧线、矩形、扇形、椭圆、三角形、圆角矩形、贝塞尔曲线、图片)(转)
    iOS开发探索-图片压缩处理
    常用第三方框架插件
    2.1创建直线
    1.4用向导创建Hello,world程序
    vs2008找不到ObjectARX MFC Support
    vc6.0错误:error C2653: 'CCreateEnt' : is not a class or namespace name
  • 原文地址:https://www.cnblogs.com/zhouhao123/p/10132573.html
Copyright © 2011-2022 走看看