简单的使用

Django-rest-framework 建成DRF,可以帮助我们快速构建出 django的rest full 风格的api接口。

其源码容易理解,所以我们可以很方便的使用。

  • 安装

    pip install djangorestframework
    pip install django==2.1.1
  • settings.py 配置

    INSTALLED_APPS = (
    ...
    'rest_framework',
    ) # DRF 自己的配置参数, 可以暂时不用配置
    REST_FRAMEWORK = {
    # Use Django's standard `django.contrib.auth` permissions,
    # or allow read-only access for unauthenticated users.
    }
  • 准备serializers.py文件, 这里直接使用admin的User,所以不需要准备models, serializers 的作用相当于序列化数据,将queryset中的数据取出来,组装成我们需要的样子。

    from django.contrib.auth.models import User, Group
    from rest_framework import serializers class UserSerializer(serializers.ModelSerializer):
    class Meta:
    model = User # 要序列的model
    fields = ('url', 'username', 'email', 'groups') # 数据字段 class GroupSerializer(serializers.ModelSerializer):
    class Meta:
    model = Group # 要序列的model
    fields = ('url', 'name') # 数据字段
  • 准备views.py 文件, 这里使用ModelViewSet,也可以使用其他viewset,在这里先不做深入讲解

    from django.contrib.auth.models import User, Group
    from rest_framework import viewsets
    from .serializers import UserSerializer, GroupSerializer class UserViewSet(viewsets.ModelViewSet):
    """
    用户接口
    """
    queryset = User.objects.all().order_by('-date_joined') # 指定queryset
    serializer_class = UserSerializer # 指定queryset对应的serializers class GroupViewSet(viewsets.ModelViewSet):
    """
    用户组接口
    """
    queryset = Group.objects.all() # 指定queryset
    serializer_class = GroupSerializer # 指定queryset对应的serializers
  • 修改url.py 文件,奖view 绑定到路由上

    from django.urls import include, path
    from rest_framework import routers
    from tutorial.quickstart import views # 使用router注册view,绑定url映射关系,
    # 关于什么时候使用router,什么时候不能使用,后面奖路由的时候在深入了解吧
    router = routers.DefaultRouter()
    router.register(r'users', views.UserViewSet) # 绑定view到users路由下
    router.register(r'groups', views.GroupViewSet) urlpatterns = [
    path('', include(router.urls)),
    path('api-auth/', include('rest_framework.urls',
    namespace='rest_framework')) # 登录接口,
    ]
  • 最后,将服务完整运行起来,在访问相关接口,就可以看到效果了

Django-rest-framework(一)简单入门使用的更多相关文章

  1. Windows10下Django虚拟环境配置和简单入门实例

    环境win10家庭版64位 + python 3.5 + Django 1.8.2 1.创建virtualenv目录 开始/运行/cmd回车,进入cmd窗口,到自己指定的目录下创建virtualenv ...

  2. Django REST framework 的快速入门教程

    CRM-API项目搭建 序列器(Serializers) 首先,我们来定义一些序列器.我们来创建一个新的模块(module)叫做 crm/rest_searializer.py ,这是我们用来描述数据 ...

  3. Django rest framework + Vue简单示例

    构建vue项目参考这篇文章https://segmentfault.com/a/1190000008049815 一.创建Vue项目 修改源:npm config set registry https ...

  4. Django REST framework+Vue 打造生鲜超市(四)

    五.商品列表页 5.1.django的view实现商品列表页 (1)goods/view_base.py 在goods文件夹下面新建view_base.py,为了区分django和django res ...

  5. Django REST framework+Vue 打造生鲜电商项目(笔记二)

    (转自https://www.cnblogs.com/derek1184405959/p/8768059.html)(有修改) 接下来开始引入django resfulframework,体现它的强大 ...

  6. Django REST Framework简单入门(一)

    Django REST Framework(简称DRF),是一个用于构建Web API的强大且灵活的工具包. REST这个词,是Roy Thomas Fielding在他2000年的博士论文中提出的. ...

  7. django rest framework 入门

    django rest framework 入门1-序列化 Serialization 分类: Python 2013-01-22 22:24 11528人阅读 评论(0) 收藏 举报 djangop ...

  8. Django REST framework快速入门指南

    项目设置 创建一个名为tutorial的新Django项目,然后开始一个名为quickstart的新应用程序. # Create the project directory mkdir tutoria ...

  9. Django REST framework入门 (转自中文文档)

    快速入门 我们将创建一个简单的允许管理员用户查看和编辑系统中的用户和组的API. 项目设置 创建一个名为 tutorial 的新django项目,然后启动一个名为 quickstart 的新app. ...

  10. RESTful架构&简单使用Django rest framework

    RESTful架构 1 什么是REST REST全称是Representational State Transfer,中文意思是表述性状态转移. 它首次出现在2000年Roy Fielding的博士论 ...

随机推荐

  1. JS异步执行之setTimeout 0的妙用

    最近在工作中遇到一些问题,大致是关于js执行问题的.由于没搞清执行顺序,导致出现了一些奇怪的bug. 所以这里整理一些有关异步执行的知识(冰山一角角)... 大家都知道js是单线程的,执行起来是顺序的 ...

  2. embedded tomcat运行java web,Unable to compile class for JSP

    环境 eclipse:4.5.2 jre:1.8 java project compiler:1.8 embedded tomcat:7.0.32 可以正常启动,但是访问时,会报错. HTTP Sta ...

  3. c#-IO和序列化操作

    IO 用到的命名空间:using System.IO; 文件和目录的管理! File类 FileInfo类 Directory类 DirectoryInfo类 操作文件的类! FileStream{ ...

  4. C# 数据库连接增删改查

    C# 连接数据库 using System.Data.sqlCliect; // 加在头 main函数里面用法(删) //连接字符串 string Connectionstring = "s ...

  5. 一个简单问题引发对IEnumerable和IQueryable的思考

    问题概述:    首先看下图,有客户表和客户负责人表关系是多对多,访问数据库使用的是EF所以这里我们开启了延迟加载,需求就是将每个客户的所有负责人逗号拼接显示在负责人这一栏位, 对你没看错需求就是这么 ...

  6. EF 取出demical数据,但需要去点小数,排序

    try { BasePaperWeightDAL.Get(o => o.IsDeleted == false && o.IsEnabled == true).OrderByDes ...

  7. 【数据库】7.0 MySQL入门学习(七)——MySQL基本指令:帮助、清除输入、查询等

    1.0 help == ? 帮助指令,查询某个指令的解释.用法.说明等.详情参考博文: [数据库]6.0 MySQL入门学习(六)——MySQL启动与停止.官方手册.文档查询 https://www. ...

  8. 关于Activity

    Activity与界面 1.Activity相当于浏览器的标签.相当于空白的网页,界面相当于浏览器内的网页. 2.将Activity与界面绑定就相当于在浏览器内填写了相应的网页. 3.Activity ...

  9. html的标签(1)

    首先补充上一次没有讲到的,html文件后缀名有2种,一种是.htm,一种是.html..html是老的教科书里面的文件后缀名,.html是新的教科书的文件后缀名..htm文件是不完整的支持html5的 ...

  10. CSS深入理解学习笔记之padding

    1.padding与容器尺寸之间的关系 对于block水平元素:①padding值暴走,一定会影响尺寸:②width非auto,padding影响尺寸:③width为auto或box-sizing为b ...