介绍
DRF框架是基于Django框架,对Django框架的封装,以提高开发效率和减少重复模块代码,并对一些功能进行了扩展,提高易用性。关于DRF官方文档讲述的非常全面
特点
-
提供了定义序列化器Serializer的方法,可以快速根据 Django ORM 或者其它库自动序列化/反序列化;
-
提供了丰富的类视图、Mixin扩展类,简化视图的编写;
-
丰富的定制层级:函数视图、类视图、视图集、可自动生成 API;
-
多种身份认证和权限认证方式的支持;
-
内置了限流系统;
-
直观的 API web 界面;
-
可扩展性,插件丰富
搭建DRF项目
1、环境安装与配置
DRF需要以下依赖:
-
Python (2.7, 3.4, 3.5, 3.6, 3.7)
-
Django (1.11, 2.0, 2.1)
2、 安装DRF
pip install djangorestframework
3、添加rest_framework应用
创建Django工程后,在settings.py的INSTALLED_APPS中添加'rest_framework'。
INSTALLED_APPS = [ ... 'rest_framework', ]
使用DRF开发
1、创建实体类的序列化器
class BookSerializer(serializers.ModelSerializer): """图书数据序列化器""" class Meta: model = Book fields = '__all__'
-
model 指明该序列化器处理的数据字段从模型类Book参考生成
-
fields 指明该序列化器包含模型类中的哪些字段,'all'指明包含所有字段
2、编写视图
from rest_framework.viewsets import ModelViewSet from .serializers import BookSerializer from .models import Book class BookViewSet(ModelViewSet): queryset = Book.objects.all() # 指明该视图集在查询数据时使用的查询集 serializer_class = BookSerializer # 该视图在进行序列化或反序列化时使用的序列化器
3、定义路由
from . import views from rest_framework.routers import DefaultRouter urlpatterns = [ ... ] router = DefaultRouter() # 处理视图的路由器 router.register(r'books', views.BookViewSet) # 向路由器中注册视图集 urlpatterns += router.urls # 将路由器中的所以路由信息追到到django的路由列表中
4、运行
python manage.py runserver
创建数据库的表后
在浏览器中输入网址127.0.0.1:8000可看到页面显示