资讯专栏INFORMATION COLUMN

django rest framework个人学习笔记(二)————Quickstart

gghyoo / 573人阅读

摘要:我们将会创建一个简单的,来让管理员能够查看和编辑和。我们将会在接下来的例子中使用这个账户。创建一个新的模块叫。但是是一个好的设计。最后,我们使用来导入默认的登录登出这是可选的。我们想启用分页和只有用户能够调用。

Quickstart

我们将会创建一个简单的API,来让管理员能够查看和编辑Users和Groups。

项目开始

创建一个新的项目叫 tutorial,然后创建一个app叫quickstart.

</>复制代码

  1. # 创建项目目录
  2. mkdir tutorial
  3. cd tutorial
  4. # 创建虚拟环境,并进入虚拟环境中
  5. virtualenv env
  6. source env/bin/activate
  7. # 安装django 和 REST framework
  8. pip install django
  9. pip install djangorestframework
  10. # 创建项目和app
  11. django-admin.py startproject tutorial
  12. cd tutorial
  13. django-admin.py startapp quickstart
  14. cd ..

创建数据库:

</>复制代码

  1. python manage.py migrate

创建一个超级用户admin,密码是password123。我们将会在接下来的例子中使用这个账户。

</>复制代码

  1. python manage.py createsuperuser

Serializers

首先,我们将去定义一些serializer。创建一个新的模块叫 tutorual/quickstart/serializers.py

</>复制代码

  1. from django.contrib.auth.models import User, Group
  2. from rest_framework import serializers
  3. class UserSerializer(serializers.HyperlinkedModelSerializer):
  4. class Meta:
  5. model = User
  6. fields = ("url","username","email","groups")
  7. class GroupSerializer(serializers.HyperlinkModelSerializer):
  8. class Meta:
  9. model = Group
  10. fields = ("url","name")

注意 这里我们使用 hyperlinked(HyperlinkedModelSerializer)。你也可以使用primary key和各式各样其他的关系。但是 hyperlinking是一个好的RESTful设计。

Views

马上,我们将写一些views.打开 tutorial/quickstart/views.py

</>复制代码

  1. from django.contrib.auth.models import User, Group
  2. from rest_framework import viewsets
  3. from tutorial.quickstart.serializers import UserSerializer, GroupSerializer
  4. class UserViewSet(Viewsets.ModelViewSet):
  5. """
  6. API允许查看和编辑 用户
  7. """
  8. queryset = User.object.all().order_by("-data_joined")
  9. serializer_class = UserSerializer
  10. class GroupViewSet(Viewsets.ModelViewSet):
  11. """
  12. API允许查看和编辑 组
  13. """
  14. queryset = Group.objects.all()
  15. serializer_class = GroupSerializer

将有共同行为的各式各样的View归为一类并称之为 ViewSets
如果我们需要,我们可以轻易的拆分这些View,但是使用 viewsets将会使View逻辑看起来更加整洁和有组织性。

URLs

现在,我们来写我们的API URLs.在 tutorual/urls.py

</>复制代码

  1. from django.conf.urls import url, include
  2. from rest_framework import routers
  3. from tutorial.quickstart import views
  4. router = routers.DefaultRouter()
  5. router.register(r"users", views.UserViewSet)
  6. router.register(r"groups", views.GroupViewSet)
  7. urlpatterns = [
  8. url(r"^", include(router.urls)),
  9. url(r"^api-auth/", include("rest_framework.urls", namespace="rest_framework"))
  10. ]

因为我们使用了viewsets来替代views,我们能够自动产生我们API的URL,只要在router中简单的注册一下我们的viewsets。
同样,如果我们需要更多的控制我们的API URLs,我们能够在简单的在下面使用常规的 class-based views,并写入url conf中。
最后,我们使用 browsable API来导入默认的登录登出Views.这是可选的。

Settings

我们还需要设置一些全局变量。我们想启用分页和API只有Admin用户能够调用。这些设置都在 tutorial/settings.py中:

</>复制代码

  1. INSTALLED_APPS = (
  2. ...
  3. "rest_framework",
  4. )
  5. REST_FRAMEWORK = {
  6. "DEFAULT_PERMISSION_CLASSES": [
  7. "rest_framework.permissions.IsAdminUser",
  8. ],
  9. "PAGE_SIZE": 10
  10. }

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/45450.html

相关文章

  • django rest framework个人学习笔记)————Quickstart

    摘要:我们将会创建一个简单的,来让管理员能够查看和编辑和。我们将会在接下来的例子中使用这个账户。创建一个新的模块叫。但是是一个好的设计。最后,我们使用来导入默认的登录登出这是可选的。我们想启用分页和只有用户能够调用。 Quickstart 我们将会创建一个简单的API,来让管理员能够查看和编辑Users和Groups。 项目开始 创建一个新的项目叫 tutorial,然后创建一个app叫qu...

    JiaXinYi 评论0 收藏0
  • django rest framework个人学习笔记)————Quickstart

    摘要:我们将会创建一个简单的,来让管理员能够查看和编辑和。我们将会在接下来的例子中使用这个账户。创建一个新的模块叫。但是是一个好的设计。最后,我们使用来导入默认的登录登出这是可选的。我们想启用分页和只有用户能够调用。 Quickstart 我们将会创建一个简单的API,来让管理员能够查看和编辑Users和Groups。 项目开始 创建一个新的项目叫 tutorial,然后创建一个app叫qu...

    izhuhaodev 评论0 收藏0
  • django rest framework个人学习笔记(三)————Tutorial1.Serial

    摘要:测试这是一个测试链接。注意编写注释是一个好的习惯。包括各个字段的验证标记,例如。字段标记也能够控制在某些环境中如何显示,例如呈现为之前的标记相当于中的。类似于有和类,也包含和两个类。 Serialization——序列化 官网地址 前言 本教程将会介绍创建一个简单webAPI。在整个学习的过程中,将会逐一介绍到REST framework的各种组件,让你全面的了解所有东西是如果组合在一...

    Pink 评论0 收藏0
  • django rest framework个人学习笔记(三)————Tutorial1.Serial

    摘要:测试这是一个测试链接。注意编写注释是一个好的习惯。包括各个字段的验证标记,例如。字段标记也能够控制在某些环境中如何显示,例如呈现为之前的标记相当于中的。类似于有和类,也包含和两个类。 Serialization——序列化 官网地址 前言 本教程将会介绍创建一个简单webAPI。在整个学习的过程中,将会逐一介绍到REST framework的各种组件,让你全面的了解所有东西是如果组合在一...

    FreeZinG 评论0 收藏0
  • django rest framework个人学习笔记(三)————Tutorial1.Serial

    摘要:测试这是一个测试链接。注意编写注释是一个好的习惯。包括各个字段的验证标记,例如。字段标记也能够控制在某些环境中如何显示,例如呈现为之前的标记相当于中的。类似于有和类,也包含和两个类。 Serialization——序列化 官网地址 前言 本教程将会介绍创建一个简单webAPI。在整个学习的过程中,将会逐一介绍到REST framework的各种组件,让你全面的了解所有东西是如果组合在一...

    ls0609 评论0 收藏0

发表评论

0条评论

gghyoo

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<