简单的使用

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. springboot整合mongo多数据源

    该实例已测试 POM.XML <!-- Spring Boot mongodb 依赖--> <dependency> <groupId>org.springfram ...

  2. C#字符串替换_无视大小写

    C#里的string.Replace是不能无视大小写的. 首先想到的是正则表达式,在网上查了下,果然有用正则表达式配合一些逻辑运算,实现无视大小写的字符串替换方法.但是正则表达式的方法用起来很麻烦,实 ...

  3. CheckBoxList

    CheckBoxList 控件基本用法 定义和用法 CheckBoxList 控件用来建立一个多选的复选框组. CheckBoxList 控件中的每个可选项由一个 ListItem 元素来定义! 提示 ...

  4. linux修改文件权限命令(chmod)

    chmod命令是用于改变文件或目录的访问权限.用户用它控制文件或目录的访问权限. 该命令有两种用法.一种是包含字母和操作符表达式的文字设定法:另一种是包含数字的数字设定法. 1.文字设定法 chmod ...

  5. Redis过期设置

    Redis支持按key设置过期时间,过期后值将被删除(在客户端看来是补删除了的) 用TTL命令可以获取某个key值的过期时间(-1表示永不过期) 127.0.0.1:6379> set name ...

  6. java常用API之System类

    System中代表程序所在系统,提供了对应的一些系统属性信息,和系统操作.System类不能手动创建对象,因为构造方法被private修饰,阻止外界创建对象.System类中的都是static方法,类 ...

  7. vue——计算属性和侦听器

    一.计算属性(data中的相关数据) 侦听多个属性时——计算属性 comuted. 模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的.在模板中放入太多的逻辑会让模板过重且难以维护.例如: & ...

  8. 集合之equals与hashCode方法

    一  equals equals方法是Object级的,默认对比两个对象的内存地址,很多类都重写了该方法,对比对象的实际内容,一般对比同一类对象相同属性的属性值是否相同. 二 hashCode 1.哈 ...

  9. Weka:call for the EM algorithm to achieve clustering.(EM算法)

    EM算法: 在Eclipse中写出读取文件的代码然后调用EM算法计算输出结果: package EMAlg; import java.io.*; import weka.core.*; import ...

  10. struts2.5框架使用通配符无效问题

    错误: Struts has detected an unhandled exception: Messages: There is no Action mapped for namespace [/ ...