Django REST Framework简单使用

1|01、安装各种组件

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

2|02、创建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|03、创建数据模型

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|04、创建序列化类

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|05、创建视图类

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|06、配置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|07、迁移数据库

python manage.py makemigrations python manage.py migrate

8|08、运行本地服务

python manage.py runserver

9|09、浏览器访问

9|19.1 API入口

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

w5qi3F-2qN6q0-

9|29.2 Students接口

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

b9nBkx-LOy9e3-

1|09.2.1 对Students接口进行操作

1|09.2.1.1 增加学生

XKtatL-RNPBNm-

点击POST之后:

BfiNDC-zwFLaH-

查看Students所有信息:

q1Kaes-IEcp0D-

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

Icri7M-hnFnSw-

点击PUT之后:

JcsJjH-3UMgm3-

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

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

Fqari4-IJtHl8-

点击PATCH之后:

7Wr15O-EgJEgs-

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

1|09.2.1.3 删除学生信息

qW7onb-zaxhCy-

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

9iOZOu-EiHLXa-

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

xlQDjX-lKbSRz-

9|39.3 Groups接口

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

wwXsb0-XnSYkM-


__EOF__

本文作者StaryJie
本文链接https://www.cnblogs.com/jie-fang/p/13218547.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   StaryJie  阅读(424)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示