• Django RESTFrame 路由问题


    路由分为3中:

      a. 自定义路由

      b. 半自动路由

      c. 全自动路由

    1.自定义路由

    urls.py

    from django.conf.urls import url, include
    from web.views import s11_render
    
    urlpatterns = [
        url(r'^test/$', s11_render.TestView.as_view()),
        url(r'^test.(?P<format>[a-z0-9]+)$', s11_render.TestView.as_view()),
        url(r'^test/(?P<pk>[^/.]+)/$', s11_render.TestView.as_view()),
    
    ]

    views.py

     1 from rest_framework.views import APIView
     2 from rest_framework.response import Response
     3 from .. import models
     4 
     5 
     6 class TestView(APIView):
     7     def get(self, request, *args, **kwargs):
     8         print(kwargs)
     9         print(self.renderer_classes)
    10         return Response('...')

    2.半自动路由

    urls.py

    from django.conf.urls import url, include
    from web.views import s10_generic
    
    urlpatterns = [
        url(r'^test/$', s10_generic.UserViewSet.as_view({'get': 'list', 'post': 'create'})),
        url(r'^test/(?P<pk>d+)/$', s10_generic.UserViewSet.as_view(
            {'get': 'retrieve', 'put': 'update', 'patch': 'partial_update', 'delete': 'destroy'})),   # 各个请求,对应view类中,要执行的方法
    ]

    views.py

    from rest_framework.viewsets import ModelViewSet
    from rest_framework import serializers
    from .. import models
    
    
    class UserSerializer(serializers.ModelSerializer):
        class Meta:
            model = models.UserInfo
            fields = "__all__"
    
    
    class UserViewSet(ModelViewSet):
        queryset = models.UserInfo.objects.all()
        serializer_class = UserSerializer

    3.全自动路由

    urls.py

    from django.conf.urls import url,include
    
    from rest_framework import routers   # 用于全自动路由的类
    router = routers.DefaultRouter()       # 用于全自动路由
    router.register(r'test', pagination.TestView,base_name='my_test')
    
    
    urlpatterns = [
        url(r'^', include(router.urls),
    ]

    views.py

     1 from rest_framework.viewsets import ModelViewSet
     2 from rest_framework import serializers
     3 from .. import models
     4 
     5 
     6 class UserSerializer(serializers.ModelSerializer):
     7     class Meta:
     8         model = models.User
     9         fields = "__all__"
    10 
    11 # 在这里指定数据库的类、以及序列化的类之后,就能自动存取数据了
    12 # 执行get方法,就自动取到数据
    13 # 执行post,就能向当前model表存入数据
    14 class TestView(ModelViewSet):
    15     queryset = models.User.objects.all()
    16     serializer_class = UserSerializer
  • 相关阅读:
    Tip#66:你知道吗?如何在输入属性值时自动插入双引号
    使用 Apache MINA 开发高性能网络应用程序(转载)
    Faceted Search with Solr
    solr dataimport 数据导入源码分析 补充
    Apache Tika
    MiddlegenHibernate的配制和使用(jtds连接sqlserver数据库)
    汉语转拼音之pinyin4j(转载)
    使用Tika进行非结构化内容的读写1
    使用Java NIO编写高性能的服务器
    solr dataimport 数据导入源码分析(十)总结
  • 原文地址:https://www.cnblogs.com/fengqing89/p/8513235.html
Copyright © 2020-2023  润新知