Django REST Framework 教程开篇

欢迎来到 HelloDjango 全栈系列教程第二步——Django REST Framework 教程!
首先恭喜你完成了 HelloDjango 全栈系列教程的第一步——Django 博客教程(第二版),在这个教程中,我们学习了基于传统模板引擎的开发方式,前端展示的 HTML 页面由后端负责渲染,后端程序员包揽了前后端开发的全部工作。
但是随着前端技术的演进,前后端分离的开发方式变得越来越流行。稍有规模的公司大都采用前后端分离的开发方式,在这种开发方式下,后端程序员只需关注业务逻辑,通过接口返回业务数据,无需懂得 HTML、CSS、JavaScript 这些前端语言(当然作为优秀的程序员,虽然不用再写,但这些都还是要懂的);前端程序员,则可以使用借助 Vue、React 等优秀的 js 框架以及 Webpack 等打包工具,专注于页面开发。而将他们联系起来的桥梁就是前后端之间数据交互的接口规范。
现在最流行的数据交互接口规范当然要属 REST 规范。REST 全称 Representational State Transfer,意为"表现层状态转化"。简单来说,在符合 REST 原则的 RESTful 架构中,一个 URL 代表某个网络资源,网络资源可以指一篇博客文章、一张图片、一首歌曲或者一种服务等。资源通常由某种标准化的格式进行描述,描述资源的格式有很多种,例如 HTML 文档就是一种描述形式。在此之前,XML 是最为常用的格式,但现在,也有越来越多的系统采用 JSON 这种更加轻量的描述形式。在客户端和服务器交互时,资源便以某种描述的格式进行传递。客户端则使用 HTTP 协议,充分借助 HTTP 协议的动词(例如 GET、POST)来表达对服务端资源进行某种操作的意图,例如 GET 用来获取资源,POST 用来新建资源(也可以用于更新资源),PUT 用来更新资源,DELETE 用来删除资源。
因此,假设我们的系统采用 RESTful 架构,对于前端工程师来说,他的工作就是根据渲染的页面,向后端发起符合 RESTful 风格的 HTTP 请求,获取接口返回的数据,渲染前端页面。而对于后端程序员来说,就是要编写接口,解读前端发来的请求,对资源进行相应操作并返回前端需要的数据。
如何解读前端的请求、如何使用指定的格式描述并传递资源等都是一系列标准化且重复的工作,所以可以由一套统一的框架来实现。django 本身没有提供这样的处理框架,但 django 的第三方拓展——django-rest-framework 就是一套专门用来开发符合 REST 规范的 RESTful 接口的框架。可以说在现在这个前后端分离的大环境下,django 开发基本离不开 django-rest-framework。因此接下来的教程里,我们将全面学习 django-rest-framework 的使用。
我们的示例项目将延续 Django 博客教程(第二版) 中开发的博客,如果你是跟着教程到这里的话,那你可以很顺畅地继续走下去。如果你没有看上一部教程也没有关系,在 django-rest-framework 教程正式开始之前会指导大家如何一步步将博客运行起来。django-rest-framework 教程虽然延续 Django 博客教程(第二版) 中的项目,但在内容上并无太大关联,如果你已经有了 django 基础(了解 ORM 以及类视图就行),就可以直接开始本教程。当然如果是纯 django 新手,对 django 中的基础概念还比较陌生的话,推荐先学习 Django 博客教程(第二版),打好基础,再来学习本教程会事半功倍。

关注公众号加入交流群
Django REST Framework 教程开篇的更多相关文章
- Django Rest Framework 教程及API向导
Django Rest Framework 教程及API向导. 一.请求(Request)REST_FRAMEWORK 中的 Request 扩展了标准的HttpRequest,为 REST_FRAM ...
- django restful framework教程大全
一. 什么是RESTful REST与技术无关,代表的是一种软件架构风格,REST是Representational State Transfer的简称,中文翻译为“表征状态转移” REST从资源的角 ...
- Django REST FrameWork中文教程2:请求和响应
从这一点开始,我们将真正开始覆盖REST框架的核心.我们来介绍几个基本的构建块. 请求对象REST框架引入了Request扩展常规的对象HttpRequest,并提供更灵活的请求解析.Request对 ...
- Django REST framework 中文教程1:序列化
建立环境 在我们做任何事情之前,我们将使用virtualenv创建一个新的虚拟环境.这将确保我们的包配置与我们正在开展的任何其他项目保持良好的隔离. virtualenv envsource env/ ...
- Python3+PyCharm+Django+Django REST framework开发教程
一.说明 自己一是想跟上潮流二是习惯于直接干三是没有人可以请教,由于这三点经常搞得要死要活.之前只简单看过没写过Diango,没看过Django REST framework,今天一步到位直接上又撞上 ...
- django rest framework
Django-Rest-Framework 教程: 4. 验证和权限 作者: Desmond Chen, 发布日期: 2014-06-01, 修改日期: 2014-06-02 到目前为止, 我们的AP ...
- 用Django Rest Framework和AngularJS开始你的项目
Reference: http://blog.csdn.net/seele52/article/details/14105445 译序:虽然本文号称是"hello world式的教程&quo ...
- Django REST framework+Vue 打造生鲜超市(一)
一.项目介绍 1.1.掌握的技术 Vue + Django Rest Framework 前后端分离技术 彻底玩转restful api 开发流程 Django Rest Framework 的功能实 ...
- Django REST framework+Vue 打造生鲜超市(三)
四.xadmin后台管理 4.1.xadmin添加富文本插件 (1)xadmin/plugins文件夹下新建文件ueditor.py 代码如下: # xadmin/plugins/ueditor.py ...
随机推荐
- vue cli web pack 全局引入jquery
之前 装过,装 npm i —save jquery 然后直接执行了第二步 往后 1,首先在 package.json 里加入, 然后 npm install 2, 在webpack.base.c ...
- openwrt 编译常用 luci 插件到固件中
先更新安装 packages luci ./scripts/feeds update packages ./scripts/feeds install -a -p packages ./scripts ...
- django 从零开始 5 数据库模型创建
进入应用项目下的models.py文件 自带一个导入的包 from django.db import models 使用这个包创建models模型 我这是要创建一个图站 ,所以模型设置并不复杂(路径配 ...
- Matplotlib数据可视化(7):图片展示与保存
In [1]: import os import matplotlib.image as mpimg from PIL import Image import matplotlib.pyplot as ...
- Python模块二
os模块是与操作系统交互的一个接口 <em>#和文件夹相关 os.makedirs('dirname1/dirname2') 可生成多层递归目录 os.removedirs('di ...
- js 拖拽实现面向对象
1.js 支持面向对象编程,但只是基于面向对象,不使用类或者接口.2.演变 工厂模式------->构造函数模式---------->原型模式 工厂模式的缺点: ①函数内部new ,不太符 ...
- (转)C++中的delete
转载自:http://blog.csdn.net/sparkliang/article/details/3670930 为了防止内存泄漏,每一个动态内存分配必须有一个等同相反的内存释放操作,delet ...
- liunx 安装 zookeeper(转)
转自:https://www.cnblogs.com/expiator/p/9853378.html linux安装zookeeper及使用 一.安装条件 想要安装zookeeper,必须先在linu ...
- 【简说Python WEB】Flask应用的文件结构
目录 [简说Python WEB]Flask应用的文件结构 1.文件结构的目录 2.配置程序--config.py 3.app应用包 4.剥离出来的email.py 5.蓝本(BLueprint)的应 ...
- python员工管理系统(基础版)
各位小伙伴们大家好,最近自学python已经差不多把基础学完了,现在运用这些基础知识写了一个简单版本的员工管理系统 因为在大学里我是学过java的,所以,当有了一定的基础和熏陶外,真心觉得python ...