环境安装与配置

DRF需要以下依赖:

  • Python (2.7, 3.2, 3.3, 3.4, 3.5, 3.6)
  • Django (1.10, 1.11, 2.0)

DRF是以Django扩展应用的方式提供的,所以我们可以直接利用已有的Django环境而无需从新创建。(若没有Django环境,需要先创建环境安装Django)

1. 安装DRF

pip install djangorestframework

2. 添加rest_framework应用

我们利用在Django框架学习中创建的demo工程,在settings.pyINSTALLED_APPS中添加'rest_framework'。

INSTALLED_APPS = [
...
'rest_framework',
]

DRF的魅力

1. 创建序列化器

在booktest应用中新建.py用于保存该应用的序列化器。

创建一个BookInfoSerializer用于序列化与反序列化。

class BookInfoSerializer(serializers.ModelSerializer):
"""图书数据序列化器"""
class Meta:
model = BookInfo
fields = '__all__'
  • model 指明该序列化器处理的数据字段从模型类BookInfo参考生成
  • fields 指明该序列化器包含模型类中的哪些字段,'__all__'指明包含所有字段

2. 编写视图

在booktest应用的views.py中创建视图BookInfoViewSet,这是一个视图集合。

from rest_framework.viewsets import ModelViewSet
from .serializers import BookInfoSerializer
from .models import BookInfo class BookInfoViewSet(ModelViewSet):
queryset = BookInfo.objects.all()
serializer_class = BookInfoSerializer
  • queryset 指明该视图集在查询数据时使用的查询集
  • serializer_class 指明该视图在进行序列化或反序列化时使用的序列化器

3. 定义路由

在booktest应用的urls.py中定义路由信息。

from . import views
from rest_framework.routers import DefaultRouter urlpatterns = [
...
] router = DefaultRouter() # 可以处理视图的路由器
router.register(r'books', views.BookInfoViewSet) # 向路由器中注册视图集 urlpatterns += router.urls # 将路由器中的所以路由信息追到到django的路由列表中

4. 运行测试

python manage.py runserver

在浏览器中输入网址127.0.0.1:8000,可以看到DRF提供的API Web浏览页面:

1)点击链接127.0.0.1:8000/books/ 可以访问获取所有数据的接口,呈现如下页面:

2)在页面底下表单部分填写图书信息,可以访问添加新图书的接口,保存新书:

点击POST后,返回如下页面信息:

3)在浏览器中输入网址127.0.0.1:8000/books/1/,可以访问获取单一图书信息的接口(id为1的图书),呈现如下页面:

4)在页面底部表单中填写图书信息,可以访问修改图书的接口

点击PUT,返回如下页面信息:

5)点击DELETE按钮,可以访问删除图书的接口

返回,如下页面:

至此,是不是发现Django REST framework很好用!

DRF工程搭建的更多相关文章

  1. 16-DRF工程搭建与序列化器

    1.DRF工程搭建 环境安装与配置 DRF是以Django扩展应用的方式提供的,所以我们可以直接利用Django环境,而无需创建(先创建Django环境). 1.安装DRF pip3 install ...

  2. 某马-某淘商城的day01--->分析,工程搭建,tomcat插件启动工程,svn,反思

    -1:为什么还要写某马的某淘商城呢? 答:万物更新,季节交替.新人总把旧人换.所以呢,前人写了N多遍的东西,我们依旧在学,所以下决心写某马的某淘商城.(也因为在学校还没找工作,所以找个相对长期的事情做 ...

  3. Django---框架简介和工程搭建

    Django框架 一.Django介绍 二.Django工程搭建 回到顶部 一.Django介绍 1.简介    Django的主要目的是简便.快速的开发数据库驱动的网站.它强调代码复用,多个组件可以 ...

  4. 单工程搭建springmvc+spring+mybatis(maven,idea)

    单工程搭建springmvc+spring+mybatis(maven,idea) 1.pom.xml <properties> <project.build.sourceEncod ...

  5. Mybatis工程搭建

    工程搭建 • 1依赖包 • 2配置文件 • 2.1spring-mybatis.xml • 2.2mybatis-config.xml自带配置文件 • 2.3 mapper(dao)对象 • 2.4 ...

  6. JAVAEE——宜立方商城01:电商行业的背景、商城系统架构、后台工程搭建、SSM框架整合

    1. 学习计划 第一天: 1.电商行业的背景. 2.宜立方商城的系统架构 a) 功能介绍 b) 架构讲解 3.工程搭建-后台工程 a) 使用maven搭建工程 b) 使用maven的tomcat插件启 ...

  7. JAVAEE——淘淘商城第一天:电商行业的背景和技术特点,商城的介绍、技术的选型、系统架构和工程搭建

    1. 学习计划 1.电商行业的背景. 2.电商行业的技术特点 3.商城的介绍 a) 常用的名词介绍 b) 系统功能介绍 4.淘淘商城的系统架构 a) 传统架构 b) 分布式架构 c) 基于服务的架构 ...

  8. SpringBoot - 工程搭建

    SpringBoot 简介 1.Spring 的封装.其设计目的是用来简化 Spring 应用的初始搭建以及开发过程. 2.SpringCloud 微服务的基础 搭建环境 jdk 1.8 + mave ...

  9. JNI工程搭建及编译

    JNI工程搭建及编译 建立Java工程 在具有C/C++比编译器的Eclipse中进行工程的创建,先创建一个简单的Java project,选项和一般同,这里仅仅需要将要调用的C/C++函数声明为na ...

随机推荐

  1. Angular8稳定版修改概述

    在今天早些时候Angular团队发布了8.0.0稳定版.其实早在NgConf 2019大会上,演讲者就已经提及了从工具到差分加载的许多内容以及更多令人敬畏的功能.下面是我对8.0.0一些新功能的简单介 ...

  2. Vim相关问题

    1.vim格式修改 进入配置文件: $ sudo vim /etc/vim/vimrc 在文件末尾添加: #默认查找忽略大小写 set ignorecase #如果有一个大写字母,则切换到大小姐敏感查 ...

  3. Python3基础(2)模块、数据类型及运算、进制、列表、元组、字符串操作、字典

    ---------------个人学习笔记--------------- ----------------本文作者吴疆-------------- ------点击此处链接至博客园原文------ 1 ...

  4. 批量 多个JPG生产PDF .net C#

    using iTextSharp.text; using iTextSharp.text.pdf; using System; using System.Collections.Generic; us ...

  5. webpack.config.js====配置babel

    参考:https://www.jianshu.com/p/9808f550c6a91. 安装依赖babel-loader: 负责 es6 语法转化babel-preset-env: 包含 es6.7 ...

  6. JavaSE之Java基础(5)

    21.简述正则表达式及其用途. 在编写处理字符串的程序时,经常会有查找符合某些复杂规则的字符串的需要.正则表达式就是用于描述这些规则的工具.换句话说,正则表达式就是记录文本规则的代码. 22.Java ...

  7. cf314E. Sereja and Squares(dp)

    题意 题目链接 给你一个擦去了部分左括号和全部右括号的括号序列,括号有25种,用除x之外的小写字母a~z表示.求有多少种合法的括号序列.答案对4294967296取模.合法序列不能相交,如()[],( ...

  8. 【转/TCP协议编程】 基于TCP的Socket 编程

    基于TCP(面向连接)的socket编程,分为客户端和服务器端. 客户端的流程如下: (1)创建套接字(socket) (2)向服务器发出连接请求(connect) (3)和服务器端进行通信(send ...

  9. Exceptions and Errors on iOS

    异常:程序缺陷导致:不可恢复:给开发者使用: 错误:资源受限导致:可恢复:提示给用户. https://blog.jayway.com/2010/10/13/exceptions-and-errors ...

  10. 【BZOJ1433】[ZJOI2009] 假期的宿舍(二分图匹配入门)

    点此看题面 大致题意:有\(n\)个学生,其中一部分是在校学生,一部分不是,而在校学生中一部分回家,一部分不回家,并且我们用一个01矩阵表示学生之间相互认识关系.已知每个学生只能睡自己认识的人的床(当 ...