rest接口_使用Django开发rest接口

7268794bb74e00c16a7ea2a72191e433.png

Rest Api接口开发核心任务

  • 将请求的数据(如json格式)转换为模型类对象-反序列化
  • 操作数据库
  • 将模型类对象转换为响应的数据(如json格式)-序列化

Django Rest framework

DRF框架是建立在Django基础上,用于构建Rest web Api的强大而灵活的工具,通常在序列化和反序列化时,虽然操作的数据不相同,但是执行的过程是相似的,也就是部分代码是可以复用简化编写,并且增删改查的实现基本的套路是一样的,这部分代码也可以复用简化。

:校验请求数据->执行反序列化过程->保存数据库->将保存的对象序列化后返回

:判断要删除的数据是否存在->执行数据库删除

:判断要修改的数据是否存在->校验请求数据->执行反序列化过程->保存数据->将保存的对象序列化后返回

:查询数据库->将数据序列化后返回

DRF帮助我们简化了上述的操作,是开发效率大大提高.

DRF特点

  • 提供了定义序列化器Serializer的方法,可以快速根据Django ORM后者其他库自动序列化或反序列化
  • 提供了丰富的类视图、MIxin扩展类,简化视图的编写
  • 丰富的层级定制:函数视图、类视图、视图集合到自动生成API,满足各种需要
  • 多种身份认证和权限认证方式的支持
  • 内置了限流系统
  • 只管的API Web界面
  • 可扩展性,插件丰富

实践

  • 创建序列化器
59a57da491b1b3da88f7d880e3974d93.png

文章序列化器

model指明该序列化器处理的数据字段是从模型类Article生成的

fields指明该序列化器包含模型类中的哪些字段,__all__包含所有字段

  • 编写视图
174d638c783e1c7710a764a231702ac5.png

文章视图

queryset指明视图集在查询数据时使用的查询集

serializer_class指明该视图在进行序列化和反序列化时使用的序列化器

  • 定义路由
a7abc14c3815481ab78a3f9e8a280813.png

app的路由文件

通过DefaultRouter路由器来注册视图集的路由,然后再项目的路由中注册app的路由

f088e7c849858231df2c0cc898e4c8d6.png

项目的路由文件

  • 运行测试

运行django项目,在浏览器打开http://127.0.0.1:8000/api/articles/

8543dbc04d7cb7bc3d681b35f7ed93ed.png

drf管理页面

这是DRF框架的接口管理页面,可以方便我们对接口进行调试,新增一个文章

4e437505d9fbf8003c41d65330c2021f.png

http://127.0.0.1:8000/api/articles/2/可以通过这样的路由访问文章详情,在详情页面,可以对文章进行各种操作。可以看到DRF的强大,短短几行代码,就可以很好的实现增删改查操作。文章中涉及到的图片上传请查看下列文章

Django使用自定义文件服务器

Django集成CKeditor并上传图片到自定义文件服务器

django-restframework框架两个视图基类讲解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值