Django rest Framework入门 二 :DRF框架初体验
Django rest Framework入门 一 :手工实现常见API中记录了如何手工基于Django实现常见的API类型,这篇笔记记录一下DRF框架简单使用的体验。
笔记中提到的代码repo:https://github.com/yexia553/drf
安装和配置修改
安装DRF
安装drf之前要先安装Django1
pip install djangorestframework
修改Django的settings.py文件
将’rest_framework’添加到‘INSTALLED_APPS’中,如下1
2
3
4INSTALLED_APPS = [
...
'rest_framework',
]
编写序列化器
序列化和反序列化的意思其实就是利用Django的Model将数据库中的数据进行一定的格式修改(比如dict变成json)之后返回给api请求者和将从api请求获取到的数据写入到数据库的过程。
在’book’ app中新建serializers.py文件,文件内容如下:
1 | from rest_framework import serializers |
上面这一段代码的作用其实就是代替了我在手工实现API的时候反复写的利用model从数据库获取数据和将从api获取到的数据写入数据库的过程,下面列举了一个查询某一本具体的书的例子。
1 | try: |
上面这个视图类只有三行,但是它却实现了笔记一中BookListView和BookDetailView两个视图类所有的功能,由此可以见DRF框架还是很方便的,减少了很多重复代码的编写工作。
修改url配置
- demo中的跟路由配置可以不作任何修改
以books/开头的url会导向book app中的路由,如下:
1 | from django.contrib import admin |
- book中url修改
修改book/urls.py如下:
1 | from django.conf.urls import url |
测试
通过浏览器测试
将项目运行起来之后,在浏览器分别输入一下地址:- 这个url就是查询所有书籍信息的API,可以在浏览器中看到当前数据中的数据;
- 页面的最下面是一个表格,右下角有一个POST按钮,这个按钮对应的是POST API,也就是创建一本书
- 当在浏览器中输入这个url的时候,实际上也是一个查询的API,但是是查询id为2的这一本书的信息;
- 不过当进入之后会看到页面右上角会有一个红色的DELETE按钮,这个按钮对应的就是DELETE API;
- 页面的下半部分是一个表格,右下角有一个蓝色的PUT按钮,这个按钮对应的就是PUT API;
通过代码测试
test路径下有一个文件drf_first_seen.py,运行这个文件,会返回每一个API测试成功或者的结果,如下:1
2
3
4
5
6(venv): python drf_first_seen.py
测试查询具体书本信息API成功
测试创建书本API成功
测试查询所有书本信息API成功
测试更新API成功
测试删除API成功