• Django REST Framework简单使用


    1、安装各种组件

    pip install django==2.1.5
    pip install djangorestframework==3.8.2
    

    2、创建Django项目

    django-admin startproject my_drf
    cd my_drf
    python manage.py startapp app01
    
    • 注册APP和rest_framework
    # Application definition
    
    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'rest_framework',
        'app01',
    ]
    

    3、创建数据模型

    app01/models.py

    from django.db import models
    
    
    # Create your models here.
    class Group(models.Model):
        name = models.CharField(verbose_name="小组名称", max_length=5)
    
        def __str__(self):
            return self.name
    
    
    class Student(models.Model):
        name = models.CharField(verbose_name="学生名字", max_length=10)
        age = models.IntegerField(verbose_name="学生年龄")
        group = models.ForeignKey(to=Group, on_delete=models.CASCADE)
    
        def __str__(self):
            return self.name
    
    

    4、创建序列化类

    app01/serializers.py

    from rest_framework.serializers import HyperlinkedModelSerializer
    
    from .models import Group, Student
    
    
    class GroupSerializers(HyperlinkedModelSerializer):
        class Meta:
            model = Group  # 要序列化的类
            fields = ('id', 'name')  # 序列化的字段
    
    
    class StudentSerializers(HyperlinkedModelSerializer):
        class Meta:
            model = Student  # 要序列化的类
            fields = ('id', 'name', 'age', 'group')  # 序列化的字段
    
    

    5、创建视图类

    app01/views.py

    from rest_framework import viewsets
    from .models import Group, Student
    from .serializers import GroupSerializers, StudentSerializers
    
    
    class StudentViewSet(viewsets.ModelViewSet):
        queryset = Student.objects.all()  # 指定要序列化的数据
        serializer_class = StudentSerializers  # 指定要使用的序列化类
    
    
    class GroupViewSet(viewsets.ModelViewSet):
        queryset = Group.objects.all()  # 指定要序列化的数据
        serializer_class = GroupSerializers  # 指定要使用的序列化类
    
    

    6、配置url

    my_drf/urls.py

    from django.contrib import admin
    from django.urls import path, include
    # 通过rest_framework自带的路由配置创建路由
    from rest_framework.routers import DefaultRouter
    
    from app01 import views
    
    router = DefaultRouter()
    # 注册路由
    router.register(r'students', views.StudentViewSet)
    router.register(r'groups', views.GroupViewSet)
    
    urlpatterns = [
        path('admin/', admin.site.urls),
      	# 配置路由入口
        path('api/', include(router.urls)),
    ]
    
    

    7、迁移数据库

    python manage.py makemigrations
    python manage.py migrate
    

    8、运行本地服务

    python manage.py runserver
    

    9、浏览器访问

    9.1 API入口

    浏览器访问:http://127.0.0.1:8000/api/

    w5qi3F-2qN6q0-

    9.2 Students接口

    浏览器访问:http://127.0.0.1:8000/api/students/

    b9nBkx-LOy9e3-

    9.2.1 对Students接口进行操作

    9.2.1.1 增加学生

    XKtatL-RNPBNm-

    点击POST之后:

    BfiNDC-zwFLaH-

    查看Students所有信息:

    q1Kaes-IEcp0D-

    9.2.1.2 更新学生信息
    • PUT是更新学生信息(必须填写完整的学生信息)

    Icri7M-hnFnSw-

    点击PUT之后:

    JcsJjH-3UMgm3-

    信息中对应的"age"信息已经更改了。

    • PATCH 部分更新,不需要传递所有信息,只需要带上“id”和要更新的信息就可以

    Fqari4-IJtHl8-

    点击PATCH之后:

    7Wr15O-EgJEgs-

    部分更新提交之后,下面的窗口中会把更新之后所有的信息都加载进来。

    9.2.1.3 删除学生信息

    qW7onb-zaxhCy-

    点击DELETE在弹出的对话框中确定之后,就可以把该学生的信息删除了:

    9iOZOu-EiHLXa-

    在所有学生信息列表中也查看不到id为5的这个学生信息:

    xlQDjX-lKbSRz-

    9.3 Groups接口

    浏览器访问:http://127.0.0.1:8000/api/groups/

    wwXsb0-XnSYkM-

  • 相关阅读:
    Premetheus告警QQ邮箱
    Prometheus+grafana监控SpringBoot2应用
    Grafana整合Prometheus
    Prometheus:入门初体验
    接口幂等性思路
    OpenFeign远程调用丢失请求头问题解决办法
    gradle构建脚本
    windows安装gradle
    CompletableFuture异步编排
    线程池(ThreadPoolExcutor)基本介绍
  • 原文地址:https://www.cnblogs.com/jie-fang/p/13218547.html
Copyright © 2020-2023  润新知