django: django rest framework Viewsets 和 Serializers

django rest framework Viewsets 和 Serializers


使用drf的Viewsets和Serializers可以大大简化视图和对数据进行增删该查的编写代码。本文将会通过一个示例项目,详细地介绍利用drf对数据进行操作。

示例代码github地址:

https://github.com/jinjidejuren/drf_learn

项目的结构如下所示:
这里写图片描述

在对一个数据模型进行操作,一般的操作步骤如下:

1.确定models.py文件中模型的结构,也就是模型所包含的数据结构(该结构会映射到数据库中);
2.编写各模型对应的序列化类;
3.实现模型的视图操作类(在该类中可以实现搜索、分页、过滤、排序和权限控制等相关操作);
4.实现相关路由信息;

接下来我们逐个实现上述步骤,完成django rest framework开发的常见模式。而且在drf的官方文档中对各部分的实现也有详细的介绍。官方文档地址如下:
http://www.django-rest-framework.org/

django rest framework的使用要求如下:

REST framework requires the following:

Python (2.7, 3.2, 3.3, 3.4, 3.5, 3.6)
Django (1.10, 1.11, 2.0)
The following packages are optional:

coreapi (1.32.0+) - Schema generation support.
Markdown (2.1.0+) - Markdown support for the browsable API.
django-filter (1.0.1+) - Filtering support.
django-crispy-forms - Improved HTML display for filtering.
django-guardian (1.1.1+) - Object level permissions support.

python的版本最好是3.6.x, django 这里使用的是1.11版本,下边的其他组件,可以使用pip进行安装:

pip install coreapi Markdown django-filter django-crispy-forms django-guardian

在项目的配置文件settings/base.py中添加rest_framework到应用列表中:

INSTALLED_APPS = [
    # 'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'rest_framework',
    'apps.assets',
    'apps.rbac'
]

自己的应用apps.assets也需要添加到应用列表中。

django rest framework的登录地址可以注册在主路由文件中,在conf/urls.py的urlpatterns中做如下设置:

url(r'^assets/v1/', include('apps.assets.urls')),
url(r'^api-auth/', include('rest_framework.urls')),

第一行我们对api接口的url设定版本为v1,这是为了符合restful接口标准(后续将会介绍restful接口设计标准,以及接口文档的编写)。

在apps/assets/models.py文件中定义各model模型,这个示例实现了Region(区域)、MachineRoom(机房)、Cabinet(机柜)、Device(设备):

from django.db import models


class 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值