Rest Framework快速入门

快速入门

创建project,创建app,之后
同步数据库:

python manage.py migrate

创建超级用户:

python manage.py createsuperuser

Serializers
第一步,我们需要定义一些serializers。
我们创建servrializers.py在app根文件夹下面。
Serializers的作用是:代表数据。


from django.contrib.auth.models import User,Group
from rest_framework import serializers

class UserSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = User
        fields = "__all__"

class GroupSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = Group
        fields = ('url', 'name')

注意我们使用的是hyperlinked关系在现在这里,你也可以使用私有的,或者多种关系,但是要知道hyperlinked是一种很好的RESTful 设计。

Views
对的,然后我们最好写一些views。打开app根目录的view.py。

from django.contrib.auth.models import User, Group
from rest_framework import viewsets
from app04.serializers import UserSerializer, GroupSerializer

class UserViewSet(viewsets.ModelViewSet):
    """
    API endpoint 允许users被查看和编辑
    """
    user_queryset = User.objects.all().order_by('-date_joined')
    serializer_class = UserSerializer

class GroupViewSet(viewsets.ModelViewSet):
    queryset = Group.objects.all()
    serializer_class = GroupSerializer

比起写多个views,我们集中了所有的常用操作在ViewSet中。
我们可以轻易地将这些分开为多个views如果需要,但是这种比较简明。

URLs
我们需要在项目根目录的urls.py中写,注意不是app的根目录。

from django.conf.urls import url,include
from rest_framework import routers
from app04 import views as app04_views

router = routers.DefaultRouter()
router.register(r'users', app04_views.UserViewSet)
router.register(r'groups', app04_views.GroupViewSet)

urlpatterns = [
    ...
    url(r'^api-auth/', include("rest_framework.urls", namespace="rest_framework")),
]

因为我们使用的是viewsets而不是views,我们可以自动地生成URL conf从我们的API,简单地使用router去register viewsets。
如果我们需要对API URLs更多地控制,我们可以使用通常的views,明确地写URL 配置。

Settings

在settings中打开分页:

INSTALLED_APPS = (
    ...
    'rest_framework',
)

REST_FRAMEWORK = {
    'DEFAULT_PERMISSION_CLASSES': [
        'rest_framework.permissions.IsAdminUser',
    ],
    'PAGE_SIZE': 10
}

你可能感兴趣的:(Rest Framework快速入门)