搜索
简帛阁>技术文章>django-drf框架自带的路由以及最简化的视图

django-drf框架自带的路由以及最简化的视图

0910自我总结

django-drf框架自带的路由以及最简化的视图

路由

一.导入模块

from rest_framework.routers import SimpleRouter

二.初始化路由对象

复制router = SimpleRouter()

三.创建路由

复制router = SimpleRouter()
# 注册各种接口路由
router.register('cars', views.CarModelViewSet, base_name='car')
#car为链接的开头,views.CarModelViewSet为当路由为cars的时候的调用的函数
urlpatterns = []
urlpatterns.extend(router.urls)

其效果等同于

复制urlpatterns = [
    url(r'^cars/$', views.CarModelViewSet.as_view()),
    url(r'^cars/(?P<pk>.*)/$', views.CarModelViewSet.as_view()),
]

视图

一.导入模块

复制from rest_framework.viewsets import ModelViewSet

二.创建视图逻辑

ModelViewSet源码

复制class ModelViewSet(mixins.CreateModelMixin,
                   mixins.RetrieveModelMixin,
                   mixins.UpdateModelMixin,
                   mixins.DestroyModelMixin,
                   mixins.ListModelMixin,
                   GenericViewSet):
    #所有他当中以及对于get等等的方法自动进行了封装
mixins是在generics再进行方法的分装成5个方法
RetrieveModelMixin:retrieve 单取
ListModelMixin:list 群取
CreateModelMixin:create 单增
UpdateModelMixin:update 单整体改
UpdateModelMixin: partial_update 单局部改
DestroyModelMixin:destroy 单删
复制class CarModelViewSet(ModelViewSet):
    queryset = models.Car.objects.filter(is_delete=False) 
    serializer_class = serializers.CarModelSerializer
    ........
    #queryset serializer_class 必须给与
    ...
    def get(self):
        他会调用retrieve或者list方法其他也类似
        .....
djangodrf框架路由以及简化视图,具体内容如下所示:路由一导入模块fromrest_frameworkroutersimportSimpleRouter二初始化路由对象routerS
基础视图示例环境搭建:新建一个Django项目,连接Mysql数据库,配置路由视图函数、序列化单独创建py文件配置路由fromdjangoconfurlsimporturlfromdjangocon
视图集与路由使用使用视图集ViewSet,可以将一系列逻辑相关动作放到一个类中:list()提供一组数据retrieve()提供单个数据create()创建数据update()保存数据dest
登录注册是几乎所有网站都需要去做接口,而说到登录,自然也就涉及到验证以及用户登录状态保存,最近用DRF在做一个关于网上商城项目中,引入了一个拓展DRFJWT,专门用于做验证和用户状态保存。这个拓
用户模型类(AbstractUser介绍)AbstractUser介绍:User对象基本属性:创建一个用户表必有:username、password创建一个用户表可有:email、phone、firs
视图层一个视图函数,简称视图,是一个简单Python函数,它接受Web请求并且返回Web响应。响应可以是一个HTML页面、一个404错误页面、重定向页面、XML文档、或者一张图片无论视图本身包含什么
APIview正常书写1序列化类书写这里用modelserlizer可以不用重写update和create方法2在视图层函数拿到原数据即modelBookbojectsxxxx类实例化原数据(in
django用户管理模块Django内置User对象,已经包含了一些主要属性,如username、password、email等,但实际情况可能还需要昵称、头像等其他属性,仅仅使用内置Us
首先,引入模块:代码如下复制代码>>>fromdjangocontribauthhashersimportmake_password,check_password生成密码:>&
载请留言联系模型管理器模型管理器:objects属性每个模型类默认都有一个叫objects类属性,它由django自动生成我们把objects称为模型管理器,其类型为:djangodbmodels