一、url控制

基本路由写法:最常用

from django.conf.urls import url
from django.contrib import admin
from app01 import views

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^books/', views.Books.as_view()),
    url(r'^book/', views.Book.as_view()),
    url(r'^login/', views.Login.as_view()),
]

第二种写法:继承ModelViewSet

基于mixins来封装的视图就是使用了继承ModelViewSet,然后改写路由:

from django.conf.urls import url
from app01 import views
urlpatterns = [
    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'})),
]

第三种写法:(自动生成路由,必须继承ModelViewSet)

# SimpleRouter 自动生成两条路由

实现过程:

Django框架深入了解_04(DRF之url控制、解析器、响应器、版本控制、分页)

Django框架深入了解_04(DRF之url控制、解析器、响应器、版本控制、分页)

tips:使用python的manage.py的shell环境进行快速添加数据用于测试:

pycharm>>Terminal:

Django框架深入了解_04(DRF之url控制、解析器、响应器、版本控制、分页)

python3 manage.py shell
>>> from app01 import models
>>> models.Publish.objects.create(name='北方出版社',addr='北京')
<Publish: Publish object>
>>> models.Publish.objects.create(name='长江出版社',addr='湖北')
<Publish: Publish object>
>>> models.Publish.objects.create(name='东方出版社',addr='唐朝')
<Publish: Publish object>
from django.shortcuts import render
from rest_framework.response import Response

# Create your views here.
from app01 import models
from app01.MySer import PublishSer
from rest_framework.viewsets import ModelViewSet


class PublishDetails(ModelViewSet):
    queryset = models.Publish.objects.all()
    serializer_class = PublishSer
views.py代码

相关文章: