码迷,mamicode.com
首页 > 其他好文 > 详细

rest_framework-09-路由

时间:2018-07-08 20:01:40      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:默认   前缀   json   include   list   style   lis   djang   query   

 

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 # 分页对象

 

rest_framework-09-路由

标签:默认   前缀   json   include   list   style   lis   djang   query   

原文地址:https://www.cnblogs.com/yimiflh/p/9280933.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!