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...>><<...