Python3+ Django2.7开发web排坑记004_restfulframework 实现前后端分离

Posted summers-willi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python3+ Django2.7开发web排坑记004_restfulframework 实现前后端分离相关的知识,希望对你有一定的参考价值。

距离上个排坑,过去这么久了啊。写了快一个月的restfulframework了 。可以来记一笔了。

首先,关于django的restframework的使用推荐去看官网的说明。上面都有详细的实例代码。不介意去看像我写的这样的随笔。或者度娘百度出来的贴了一段代码的使用介绍。坑太多了。。。即使你用它的跑起来了。让你换个场景你可能都不知道为啥会出问题。。。我是像无头苍蝇转了半天最后,还是去看了官网文档才有点理解的。。。。官网地址:https://www.django-rest-framework.org/

吐槽完,接下来说说如何使用吧。估计会和网上搜来的一样哈。。。哈哈

1、安装(建议命令行安装)

安装命令: pip install djangorestframework

检查安装是否成功方式:pip list  或者在py 里 from rest_framework   能出来说明安装好了。根据你的开发工具不同有区别。pycharme上可以直接在配置里查找安装,我用的vs code习惯走了终端

2、项目配置restframework

在项目目录下的settings.py 的INSTALLED_APPS里添加对restframework的支持具体如图

技术图片

 

然后在settings的末尾添加必要的restframework的配置信息,一开始只要添加红色框就行,以后项目慢慢做了才会添加下面的字段

关于权限permission 默认一般会用allowany我这是配置里对model的读写,根据实际需要来吧。你可以在py里应用这个permissions然后就就能看到他能配哪些了

技术图片

 

 技术图片

3、使用方式(重点)

配置完成后,就能使用restframework来写接口了。

使用前先说明restframework 里的几个重要概念。Response、Request、Serializer和APIView 、ViewSet、api_view

(1)、Response、Request 是restframework提供的响应和请求类,你如果使用的是这两个对象处理请求和响应的话和django自身的是有点出入的。主要注意的是:

请求参数:django的请求参数是在request.Get里,这里是存在里Request.query_params里

请求体:django的post是request.Post,这是在request.data里

(2)、序列化Serializer  ,这是个好用的东西。。它可以把你前端传的Json信息自动转换成你model里需要的,然后响应的时候可以自动帮你把需要返回的信息转成Json省去了很多开发量

(3)APIView 、ViewSet、api_view  :这是restframework处理视图的时候提供的三种工作方式。详细介绍看官网吧。。。简单说明呢

APIView是基于类视图的,你写的view需要集成APIView,然后前端的restFull请求它会自动去查找方法里的get、post、put、delete

api_view  是基于函数方法本身的,使用的时候只要在指定的函数上添加装饰指明就行

ViewSet 是比较复杂的一种

4、个人实现过程

创建model

技术图片

 

 

创建序列化类

技术图片

 

 基于类视图模式创建视图类

技术图片

 

 技术图片

 

 红框中的属性是必须的默认属性

然后就可以在url里配置路由了

技术图片

 

这里的$符号是告诉服务器我的请求路径里不要默认的‘/‘ ,django项目默认会在路径里加这个,项admin那里那样

然后启动项目后就可以看看效果了

不带参查询

技术图片

 

 

 带参数查询

技术图片

 

 

心得:多用多写,不要怕玩坏,玩坏了那就是他设计有bug或者你有bug...>><<...

 

以上是关于Python3+ Django2.7开发web排坑记004_restfulframework 实现前后端分离的主要内容,如果未能解决你的问题,请参考以下文章

《Flask Web开发:基于Python的Web应用开发实战》排坑

Pyspider 安装排坑指南

最详细的 Spring Boot 多模块开发与排坑指南

最详细的 Spring Boot 多模块开发与排坑指南

react-native —— 在Mac上配置React Native Android开发环境排坑总结

最新使用uniapp本地打包APP安卓,已排坑