django: django rest framework Viewsets 和 Serializers

Django REST framework:构建高效RESTful API的终极指南 RESTful API是现代Web开发的核心技术,遵循资源表述状态转移架构风格。Django REST framework(DRF)作为Django生态中的API开发工具包,通过序列化器、视图集和路由等组件,实现了高效的数据交互和业务逻辑封装。其内置的认证系统支持Session、Token和JWT等多种方式,而可浏览API界面则大幅提升了开发体验。在电商平台、内容管理系统等场景中,DRF的ModelSerializer能自动处理Django模型关系,配合ViewSets可快速实现CRUD操作。相比Flask 阅读详情

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


3小时快速上手Django REST Framework:构建RESTful API实战指南 在现代Web开发中,前后端分离架构已成为主流范式,API接口作为前后端通信的核心枢纽,其设计与实现至关重要。RESTful API遵循统一的架构风格,通过HTTP方法对资源进行操作,实现了客户端与服务器的解耦。Django REST Framework(DRF)作为Django生态中构建Web API的强大工具包,通过序列化器、视图集和路由器等高度封装的组件,极大地简化了API开发流程。其技术价值在于能够以极少的代码快速生成功能完备、符合REST规范的接口,显著提升开发效率。在快速原型验证、前后端分离项目以 阅读详情

相关推荐

Django REST框架(DRF)核心功能与实战指南

RESTful API是现代Web开发的核心技术,Django REST framework作为Python生态中最成熟的API开发工具包,通过序列化器实现数据转换与验证,配合视图集自动生成CRUD接口。其认证系统支持Session、Token、JWT等多种方案,权限控制可细化到对象级别。在性能优化方面,DRF提供查询优化、分页控制和缓存集成等方案,特别适合构建企业级后台服务和开放平台API。本文以电商平台的商品API为例,详解如何通过ModelSerializer快速实现数据模型到API的映射,利用Vie

weixin_34198453的博客 300

Vue3与Django REST Framework全栈开发实战指南

现代Web开发中,前后端分离架构已成为主流技术范式。Vue.js作为渐进式前端框架,通过虚拟DOM和响应式数据绑定实现高效UI渲染;Django REST Framework则基于Python/Django生态,提供强大的REST API构建能力。两者结合能显著提升开发效率,特别适合需要快速迭代的企业级应用开发。在技术实现层面,Vue的单文件组件与DRF的序列化器形成完美互补,而Pinia状态管理库与Django ORM的配合则解决了复杂状态同步问题。典型应用场景包括CMS系统、电商平台和数据可视化等需要前

weixin_33842304的博客 480

无法获得下列放可solidworks standard 无法连接到服务器-15,10,10061如何解决?

无法获得下列放可solidworks standard 无法连接到服务器-15,10,10061如何解决?

qq_63539957的博客 2万+

Ansys Lumerical FDTD仿真加速策略与高性能硬件选型指南

本文深入探讨了Ansys Lumerical FDTD仿真的核心加速策略,涵盖算法优化与硬件选型两大维度。通过合理运用非均匀网格、对称边界条件等算法技巧,并精准匹配CPU/GPU计算资源与高性能硬件配置,可显著提升仿真效率,将计算时间从数天缩短至数小时。

a0b1c2d3的专栏 604

国产NAS哪家强?极空间&绿联&威联通&群晖对比

随着个人数据量暴增,传统网盘空间不足和下载速度慢问题愈发凸显。新势力NAS,作为数据管理领域的璀璨新星,正以其独特的互联网设计理念,引领家庭及小型办公用户向数据存储的新纪元。它不仅仅是一款产品,更是为初学者用户量身定制的贴心伙伴。其系统界面之简洁、操作流程之直观,让人一目了然,真正实现了“即插即用”的极致便捷。同时,新势力NAS在保持专业水准的同时,更提供了多样化的扩展性配置,轻松应对各种数据存储与管理需求,让家庭及小型办公场景下的数据管理变得前所未有的简单与高效。

专注大数据、云计算、人工智能、机器人领域技术传播 3641

前端埋点的实践

1、前言 开始正文前先介绍一下埋点的概念~,(熟悉的朋友可以略过) 前端埋点: 是一种手段,它的目的是上报相关行为数据,相关人员以数据为依据来分析产品在用户端的使用情况,根据分析出来的结果辅助产品优化、迭代。 BI:商业智能,公司内部做数据分析相关的部门。 2、背景 在流量红利逐渐消失的现在,数据的采集、分析和精细化的运营显得更加重要,所以埋点的需求在互联网产品中是很常见的,目的上面也提到了。我们的追求就是又快又好的做好埋点工作,但是现实却不那么美好;目前我们团队在前端埋点方面存在一些痛点: 在构造埋点字段

Arui_0的博客 1772

遗传算法解整数规划IntCon

x = ga(fun,nvars,A,b,[],[],lb,ub,nonlcon,IntCon) IntCon就是代表整数的参量,描述的是哪几个自变量是0-1整数变量。比如navrs设置有4个变量,设置IntCon为[2 3],代表第2和第3个变量是整数。 再比如设置IntCon=2:2:nvars,代表偶数项的变量是整数。 值得注意的是一旦设置了非空的IntCon,则Aeqandbeqmust be an empty entry ([]), andnonlconmust re...

jianti9962的博客 9219

【ArcGIS遇上Python】使用add-in向导开发ArcGIS插件(1):add-in工具介绍及安装

文章目录addin介绍addin下载addin安装 addin介绍 ArcGIS从10.0开始支持addin(ArcGIS软件中又叫作加载项)的方式进行插件制作。相对于以往9.x系列,addin的无论是从使用或者编写都更加方便快捷。通过开发语言,可以制作ArcGIS Desktop各个软件模块的插件。 Esri提供了Python加载项向导工具来实现Addin界面的搭建,可以到Esri官网去下载该工具Python加载项向导 。从介绍来看,该设计器要求的最低ArcGIS版本为10.1 ,如下图所示: add

智慧空间实验室 7200

2024年全国青少年信息素养大赛初赛真题(算法创意实践挑战赛C++小学组:带解析)

2024全国青少年信息素养大赛C++算法创意实践挑战赛初赛真题及解析

王老师青少年编程 2807

python读取并可视化npy格式的深度图文件以及将其保存为jpg图片的方法

  npy文件是无法直接打开的,它里面包含的是一个矩阵格式的数据,可以用于存储图像。为了对其进行可视化,需要将其转换为图像。这里需要用到numpy包以及matplotlib包,没有的话就pip install一下吧。现进入包含有npy文件的目录(我的该目录下有一个名为0000.npy的文件),然后打开一个终端,执行python进入pythn命令行模式,依次输入如下代码即可: import numpy as np import matplotlib.pyplot as plt depthmap = np.lo

zeeq的博客 5万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

上一篇: django: django rest framework 分页
下一篇: django: django rest framework 数据的查找、过滤、排序
linux_player_c
博客等级 码龄13年 214粉丝 134原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值