简单的使用

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')) # 登录接口,
    ]
  • 最后,将服务完整运行起来,在访问相关接口,就可以看到效果了

最新文章

  1. bash基础
  2. [web安全]Web应用漏洞攻击分析与防范
  3. android 切换fragment的两种方式
  4. C#利用Web Service实现短信发送(转)
  5. 一机双mysql的安装和启动注意事项目
  6. 《zw版·delphi与halcon系列原创教程》zw版_THOperatorSetX控件函数列表 v11中文增强版
  7. The Network Adapter could not establish the connection解决办法
  8. JSP元素和标签
  9. Python 生成的页面中文乱码问题
  10. WM_NCHITTEST有21种取值,常用的有HTCAPTION,HTCLIENT,HTBORDER,HTSYSMENU,HTTRANSPARENT,罗列所有VCL里对其使用的情况
  11. 首页布局时div的宽度设置要注意
  12. hdu2222 Keywords Search(AC自动机初步)
  13. 操作系统:ucore的部分Bug&挑战练习
  14. Oracle12c中数据泵新特性之功能增强(expdp, impdp)
  15. Fiddler工具使用介绍
  16. 解决tomcat中文传输乱码问题
  17. B2C商城关键技术点总结(站内搜索、定时任务)
  18. JavaScript-isFinite()判断是否数字有效
  19. Subarray Product Less Than K LT713
  20. 修改SQL Server 的排序规则(转)

热门文章

  1. Java学习第二十一天
  2. SQL 脚本整理 笔记
  3. mysql安装与使用
  4. select, poll, epoll笔记
  5. 菜鸟学习Spring——SpringIoC容器基于三种配置的对比
  6. 【阿里云产品公测】性能测试服务PTS初体验
  7. asyncio标准库2 Hello Clock
  8. 华为OJ-表示数字
  9. Orchard Core 文档翻译 (二)代码生成模板 Code Generation Templates
  10. May 13th 2017 Week 19th Saturday