zoukankan      html  css  js  c++  java
  • rest_framework-09-路由

    rest_framework-09-路由

    路由

     1.最原始的路由

     

    2.?问号传参 等于号=    渲染器json格式,  http://127.0.0.1:8080/api/v1/view1/1/?format=json

    运行结果:

     

     3. .json 点后面可以写字母、数字等等   http://127.0.0.1:8080/api/v1/view1.json

     

    运行结果:

    #4.  数字.json   http://127.0.0.1:8080/api/v1/view1/1/ 或者 http://127.0.0.1:8080/api/v1/view1/1.json/

     

    运行结果:http://127.0.0.1:8080/api/v1/view1/1.json/

     

    代码:

     urls.py

        # 2. 渲染器,等于号=json格式  http://127.0.0.1:8080/api/v1/view1/1/?format=json
        url(r'^(?P<version>[v1|v2]+)/view1/$', views.View1View.as_view({'get': 'list','post':'create'})),
    
        # 3..json 点后面可以写字母、数字等等  http://127.0.0.1:8080/api/v1/view1.json/
        url(r'^(?P<version>[v1|v2]+)/view1.(?P<format>w+)$', views.View1View.as_view({'get': 'list','post':'create'})),
    
        # 4. http://127.0.0.1:8080/api/v1/view1/1/ 或者  http://127.0.0.1:8080/api/v1/view1/1.json/
        url(r'^(?P<version>[v1|v2]+)/view1/(?P<pk>d+)/$', views.View1View.as_view({
            'get': 'retrieve','delete':'destroy','put':'update','patch':'partial_update'})),
        url(r'^(?P<version>[v1|v2]+)/view1/(?P<pk>d+).(?P<format>w+)/$', views.View1View.as_view({
            'get': 'retrieve','delete':'destroy','put':'update','patch':'partial_update'})),

    views.py

    #===================================================================ModelViewSet  # 视图
    
    from api.utils.serializers.pager import PagerSerializers  # 序列化
    from rest_framework.response import Response # 渲染器
    from rest_framework.pagination import PageNumberPagination # 分页
    from rest_framework.viewsets import GenericViewSet, ModelViewSet  # 视图
    from rest_framework.mixins import ListModelMixin,CreateModelMixin  # 可继承(增删改查)
    
    # class View1View(ListModelMixin,CreateModelMixin,GenericViewSet):
    class View1View(ModelViewSet):
    
        queryset = models.Role.objects.all()  # 所有数据集合
        serializer_class = PagerSerializers  # 序列化对象
        pagination_class = PageNumberPagination # 分页对象

     自动路由

    1.urls.py

    url带版本

    views.py还没改变。

    运行错误的url结果:

     运行正确的url结果:http://127.0.0.1:8080/api/v1/rt/  查看所有数据

      运行正确的url结果:http://127.0.0.1:8080/api/v1/rt.json/  查看所有数据 json格式

    urls.py代码:
    
    
    from django.conf.urls import url,include
    from api import views
    
    
    # 自动生成路由
    from rest_framework import routers
    # 路由前缀
    router = routers.DefaultRouter()
    router.register(r'xxx', views.View1View) # 默认会生成4个url,前缀xxx
    router.register(r'rt', views.View1View) # 默认会生成4个url,前缀rt
    urls.py
    # 自定义路由
    url(r'^',include(router.urls)),
     

    views.py代码:

    #===================================================================ModelViewSet  # 视图
    
    from api.utils.serializers.pager import PagerSerializers  # 序列化
    from rest_framework.pagination import PageNumberPagination # 分页
    from rest_framework.viewsets import GenericViewSet, ModelViewSet  # 视图

    class View1View(ModelViewSet): queryset = models.Role.objects.all() # 所有数据集合 serializer_class = PagerSerializers # 序列化对象 pagination_class = PageNumberPagination # 分页对象
     
     
  • 相关阅读:
    HDU 5501
    CF #324 DIV2 E题
    CF #324 DIV2 C题
    利用位操作实现加减运算(不用+ -号)
    【Leetcode】120. 三角形最小路径和
    删除排序链表中的重复元素
    【python】二分查找
    如何在不添加新数组的情况下移除元素?
    三/四 数之和,双指针法,细节很多
    【转】字符串相关操作
  • 原文地址:https://www.cnblogs.com/yimiflh/p/9280933.html
Copyright © 2011-2022 走看看