不要重复造轮子
DRF模式就是高度集成化的 后端模式 可以将 工作简单化。
比较大的区别就是 有 序列化 有视图集可以简单化工作。
举一个例子。
我们将创建一个简单的允许管理员用户查看和编辑系统中的用户和组的API。
项目设置
创建一个名为 tutorial
的新django项目,然后启动一个名为 quickstart
的新app。
1 | # 创建项目目录 |
现在第一次同步你的数据库:
1 | python manage.py migrate |
我们还要创建一个名为 admin
的初始用户,密码为 password123
。我们稍后将在该示例中验证该用户。
1 | python manage.py createsuperuser |
等你建立好一个数据库和初始用户,并准备好开始。打开应用程序的目录,我们就要开始编码了…
Serializers
首先我们要定义一些序列化程序。我们创建一个名为 tutorial/quickstart/serializers.py
的文件,来用作我们的数据表示。
1 | from django.contrib.auth.models import User, Group |
请注意,在这个例子中我们用到了超链接关系,使用 HyperlinkedModelSerializer
。你还可以使用主键和各种其他关系,但超链接是好的RESTful设计。
Views
好了,我们接下来再写一些视图。打开 tutorial/quickstart/views.py
文件开始写代码了。
1 | from django.contrib.auth.models import User, Group |
不再写多个视图,我们将所有常见行为分组写到叫 ViewSets
的类中。
如果我们需要,我们可以轻松地将这些细节分解为单个视图,但是使用viewsets可以使视图逻辑组织良好,并且非常简洁。
URLs
好的,现在我们在tutorial/urls.py
中开始写连接API的URLs。
1 | from django.conf.urls import url, include |
因为我们使用的是viewsets而不是views,所以我们可以通过简单地使用路由器类注册视图来自动生成API的URL conf。
再次,如果我们需要对API URL进行更多的控制,我们可以简单地将其拉出来使用常规基于类的视图,并明确地编写URL conf。
最后,我们将包括用于支持浏览器浏览的API的默认登录和注销视图。这是可选的,但如果您的API需要身份验证,并且你想要使用支持浏览器浏览的API,那么它们很有用。
Settings
我们也想设置一些全局设置。我们想打开分页,我们希望我们的API只能由管理员使用。设置模块都在 tutorial/settings.py
中。
1 | INSTALLED_APPS = ( |
好了,我们完成了。
Django REST framework 中文网 :https://q1mi.github.io/Django-REST-framework-documentation/tutorial/quickstart_zh/
Django REST framework的使用总结:https://juejin.im/post/6844903869336518664#heading-30
总结:https://www.atjiang.com/django-rest-tut5-relationships-and-hyperlinked-apis/