Django REST框架——快速指南

Django REST框架是一个用于构建Web API的功能强大且灵活的工具包。
django版本1.11

起步

首先使用pip安装需要的包

pip install djangorestframework
pip install markdown       
pip install django-filter  

然后创建项目

django-admin startproject rest_test
cd rest_test
django-admin startapp app

同步数据库

python manage.py migrate

创建一个用于登录测试的超级用户

python manage.py createsuperuser --email test@test.com -- usernaem admin

然后根据提示输入密码即可注意,这里输入的密码需要一定的复杂度,否则会创建失败

串行器

  串行化即序列化,我们要定义一些序列器。创建一个名为rest_test/app/serializers.py,我们将用于数据表示的新模块。

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

class UserSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = User
        field = ('url', 'username', 'email', 'groups')

class GroupSerializer(serializers.HyperlinkedModelSerializer):
    class meta:
        model = Group
        field = ('url', 'name')

注意, 在这种情况下,我们使用超链接关系HyperlinkedModelSerializer。还可以使用主键和其他的关系,但超链接是良好的RESTful设计。

视图

rest_test/app/views.py下定义如下代码:

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

class UserViewSet(viewsets.ModelViewSet):
    queryset = User.objects.all().order_by('-date_joined')
    serializer_class = UserSerializer

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

  我们并不是在编写多个视图函数,而是将所有常见行为集成在一起,称为类ViewSets。如果需要,我们可以轻松的将这些视图分解为单个视图,但使用视图集可以使视图逻辑组织得非常好,并且非常简洁

路由地址

rest_test/urls.py

from django.conf.urls import url, include
from rest_framework import routers
from app import views

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

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

  因为我们使用视图集而不是视图,所以我们可以自动为我们的API生成URL_conf,只需向路由器类注册视图集。
  同样,如果我们需要更多地控制API URL,我们可以简单地使用常规的基于类的视图,并明确写入URL conf。
  最后,我们将包括默认的登录和注销视图即路由地址为api-auth的,以用于可浏览的API。这是可选的,如果您的API需要身份验证并且您想使用可浏览的API,则会很有用。

配置

在settings文件中添加 ‘ rest_framework’ 到INSTALLED_APPS

INSTALLED_APPS = (
    ...
    'rest_framework',
)

测试

启动服务

python manage.py runserver

通过浏览器,转到网址http://127.0.0.1:8000/users/
测试
通过浏览器进行测试是需要登录的

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值