DjangoRESTFramework

a powerful and flexible toolkit for building Web APIs.

安装

1
pip install djangorestframework

基本配置

注册应用

1
2
3
4
INSTALLED_APPS = [
...
'rest_framework',
]

只要安装了djangorestframework,就可以注册这个应用。

添加路由

1
2
3
4
5
6
7
from rest_framework import routers
from . import views
router = routers.DefaultRouter()
urlpatterns = [
...
]
urlpatterns += router.urls

使用方法

添加数据模型

1
2
3
4
5
6
from django.db import models
class Book(models.Model):
nid = models.AutoField(primary_key=True)
name = models.CharField(max_length=32)
price = models.DecimalField(max_digits=5, decimal_places=2)
author = models.CharField(max_length=32)

添加对应序列化

1
2
3
4
5
6
from rest_framework import serializers
from . import models
class BookModelSerializer(serializers.ModelSerializer):
class Meta:
model = models.Book
fields = "__all__"

将数据模型Book的数据序列化,这样可以非常方便地转换数据之间的类型。

添加视图集

1
2
3
4
5
6
from rest_framework import viewsets
from . import models
from . import serializers
class BookViewSet(viewsets.ModelViewSet):
queryset = User.objects.all()
serializer_class = serializers.BookModelSerializer

FBV(function base views) 在视图里使用函数处理请求。

CBV(class base views) 在视图里使用类处理请求。

注册视图集

1
router.register(r'books', views.BookViewSet)