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

原文地址:https://www.cnblogs.com/summers-willi/p/12653523.html

时间: 2024-10-17 14:58:34

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

Python3+ Django2.7开发web排坑记001

今天用Python3+Django开发第一个web项目,记录碰到的第一个坑. 用django命令创建项目后,运行manage.py就能在本地默认的127.0.0.1:8000看到页面启动了. 当你想把显示的页面改成中午,第一个坑就出现了. 我一开始照着书上教程把 settings.py 的 LANGUAGE_CODE 改成了zh-Hans  然后报错了 啊!难受啊.为啥呢,查了半天网上的,有说改成zh-cn的  有说要改时区TIME_ZONE为亚洲/上海的  有说改成CCT的. 然后试来试去都不

ASP.NET Core 实战:使用 ASP.NET Core Web API 和 Vue.js 搭建前后端分离项目

 一.前言 这几年前端的发展速度就像坐上了火箭,各种的框架一个接一个的出现,需要学习的东西越来越多,分工也越来越细,作为一个 .NET Web 程序猿,多了解了解行业的发展,让自己扩展出新的技能树,对自己的职业发展还是很有帮助的.毕竟,现在都快到9102年了,如果你还是只会 Web Form,或许还是能找到很多的工作机会,可是,这真的不再适应未来的发展了.如果你准备继续在 .NET 平台下进行开发,适时开始拥抱开源,拥抱 ASP.NET Core,即使,现在工作中可能用不到. 雪崩发生时,没有一

前后端分离和组件化在实际开发中的问题

公司用vue开发的第一个项目告一段落,在开发中存在很多问题,第一就是前后端分离的实际应用中遇到很多坑,前端和后端的依赖其实没完全分开,前端要依赖后端的提供的接口输出,接口有没有报错;后端要依赖前端页面的展示数据的需求来确定接口的输出字段.其实没完全分开,后面讨论是不是可以将数据的打包从java层分出来放到node层,java只要提供通用的查询表功能.这样后台就不用依赖前端页面的输出来规定自己接口的输出项了,而前端想要什么数据就可以在node层调用通用接口来自己组装数据返回给前端,而且前端也可以只

前后端分离开发部署模式

前后端分离开发部署模式 Other 2015-06-13 在开始讨论这个话题之前我们先来认识一下传统的开发模式. 一.传统开发模式 相信很多做过Web开发童鞋应该都会经历这样一种开发模式,利用后端语言提供的模版引擎编写HTML/XML页面,比如: PHP 开发有 Smarty模板引擎 Java web工程有jsp页面 Python 各个Web框架都有各自的模板引擎 NodeJS 的express你懂得 都有一个共同的特点,服务器端后台语言生成解析后的HTML/XML格式返回给客户端,例如浏览器端

web系统是否要前后端分离?

开发一个web管理系统,是否要采用如今流行的前后端分离模式? 首先要从为什么会出现前后端分离说起,前后端分离的目的. 1.让前端工程师(前端)和后端工程师(后端)们能够更加专注于自己的领域 传统的开发模式是由前端负责将UI设计好的页面切成对应的静态网页,然后交由后端整合数据,实现网页的数据动态化. 这种开发模式下,前端不会去关注整个系统的业务流程是怎样的,所以导致后端在将拿到的静态页面整合成动态页面时常会出现页面展示与预期的效果不一样,需要前端不断的去调整.而后端则要痛苦的去面对一堆自己并不完全

关于Web前后端分离的体验

由于公司有一个特殊的项目,以前是完全用php(smarty)写的一个程序,现在要转向php+node.因此一不小心又给后端同学们灌输了下用node做前后端分离的思想. 以前在知乎上答过这样的问题.大概如下 http://www.zhihu.com/question/26835139 由于目前正在做angular的项目,因此体验更加深刻. 现在再来说一下前后端分离的想法吧,还是有点借鉴http://ued.taobao.org/blog/2014/04/full-stack-development

利用grunt-contrib-connect和grunt-connect-proxy搭建前后端分离的开发环境

前后端分离这个词一点都不新鲜,完全的前后端分离在岗位协作方面,前端不写任何后台,后台不写任何页面,双方通过接口传递数据完成软件的各个功能实现.此种情况下,前后端的项目都独立开发和独立部署,在开发期间有2个问题不可避免:第一是前端调用后台接口时的跨域问题(因为前后端分开部署):第二是前端脱离后台服务后无法独立运行.本文总结最近一个项目的工作经验,介绍利用grunt-contrib-connect和grunt-connect-proxy搭建前后端分离的开发环境的实践过程,希望能对你有所帮助. 注:

架构设计:前后端分离之Web前端架构设计

在前面的文章里我谈到了前后端分离的一些看法,这个看法是从宏观的角度来思考的,没有具体的落地实现,今天我将延续上篇文章的主题,从纯前端的架构设计角度谈谈前后端分离的一种具体实现方案,该方案和我原来设想有了很大的变化,但是核心思想没变,就是控制层是属于Web前端的. 在以前文章里我说道前后端分离的核心在于把mvc的控制层归为前端的一部分,原方案的构想在实际的生产开发里很难做到,我觉得核心还是控制层和视图层的技术异构性,这样后果使得系统改造牵涉面太大,导致在项目团队里,沟通.协调以及管理成本相对较高,

[转] 前后端分离开发模式的 mock 平台预研

引入 mock(模拟): 是在项目测试中,对项目外部或不容易获取的对象/接口,用一个虚拟的对象/接口来模拟,以便测试. 背景 前后端分离 前后端仅仅通过异步接口(AJAX/JSONP)来编程 前后端都各自有自己的开发流程,构建工具,测试集合 关注点分离,前后端变得相对独立并松耦合 开发流程 后台编写和维护接口文档,在 API 变化时更新接口文档 后台根据接口文档进行接口开发 前端根据接口文档进行开发 开发完成后联调和提交测试 面临问题 没有统一的文档编写规范,导致文档越来越乱,无法维护和阅读 开