首页 > 其他分享 >使用DRF实现五个api接口

使用DRF实现五个api接口

时间:2022-10-24 17:12:14浏览次数:82  
标签:info classroom name 接口 sex api id DRF

使用DRF实现五个api接口

2.1 新建app

django-admin startapp app01

2.2 配置环境

# 注册app01和rest_framework,由于drf提供了web调试界面,所以静态文件功能不能注释掉,不然web界面没有样式
INSTALLED_APPS = [
    # 'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    # 'django.contrib.messages',
    'django.contrib.staticfiles',
    'app',
    'app01',
    'rest_framework',
]

2.3 视图

from app.models import *
from .serializer import studentSerializer
from rest_framework.viewsets import ModelViewSet


class studentModelViewset(ModelViewSet):
    queryset = studentsInfo.objects.all()
    serializer_class = studentSerializer

2.4 序列化器

app01/serializer.py:

from rest_framework import serializers
from app.models import *


class studentSerializer(serializers.ModelSerializer):

    class Meta:
        model = studentsInfo
        fields = "__all__"

2.5 配置路由

app01/urls.py:

from rest_framework.routers import DefaultRouter
from . import views

router = DefaultRouter()
# 以后有几个视图集就注册几个
router.register("stu", views.studentModelViewset, basename="stu")

urlpatterns = [

] + router.urls

drfdemo1/urls.py:

from django.urls import path, include

urlpatterns = [
    # path('admin/', admin.site.urls),
    path('api/',include('app.urls')),
    path('api/', include('app01.urls')),
]

2.6启动项目

python manage.py runserver 8000

2.7 测试api接口

2.7.1 获取所有数据

GET /api/stu/

返回数据

HTTP 200 OK
Allow: GET, POST, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

[
    {
        "id": 1,
        "name": "小明",
        "sex": "男",
        "age": 22,
        "classroom": "301",
        "info": "这个人很懒,什么也没有留下"
    },
    {
        "id": 2,
        "name": "小红",
        "sex": "女",
        "age": 18,
        "classroom": "301",
        "info": "这个人很懒,什么也没有留下"
    },
    {
        "id": 3,
        "name": "张三",
        "sex": "男",
        "age": 25,
        "classroom": "307",
        "info": "这个人很懒,什么也没有留下"
    },
    {
        "id": 4,
        "name": "李四",
        "sex": "男",
        "age": 24,
        "classroom": "308",
        "info": "这个人很懒,什么也没有留下"
    },
    {
        "id": 5,
        "name": "闵麒良",
        "sex": "男",
        "age": 23,
        "classroom": "310",
        "info": "河工胡歌"
    },
    {
        "id": 12,
        "name": "孙明辉",
        "sex": "男",
        "age": 23,
        "classroom": "333",
        "info": "这个人很懒,什么都没有留下"
    }
]

2.7.2 添加一条数据

x2oaee.png

返回数据:

HTTP 201 Created
Allow: GET, POST, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 14,
    "name": "啾啾",
    "sex": "女",
    "age": 22,
    "classroom": "321",
    "info": "啾啾啾啾啾啾啾啾啾啾"
}

数据库

x2owod.png

2.7.3 获取一条数据

GET /api/stu/14/

返回数据:

HTTP 200 OK
Allow: GET, PUT, PATCH, DELETE, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 14,
    "name": "啾啾",
    "sex": "女",
    "age": 22,
    "classroom": "321",
    "info": "啾啾啾啾啾啾啾啾啾啾"
}

2.7.4 修改一条数据

x2orWt.png

返回数据:

HTTP 200 OK
Allow: GET, PUT, PATCH, DELETE, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 14,
    "name": "呆呆",
    "sex": "男",
    "age": 20,
    "classroom": "405",
    "info": "呆呆很赖,什么都没有留下"
}

数据库:

x2ocy8.png

2.7.5 删除一条数据

x2oReg.png

DELETE /api/stu/14/

返回数据:

HTTP 204 No Content
Allow: GET, PUT, PATCH, DELETE, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

数据库:

x2oWwQ.png

标签:info,classroom,name,接口,sex,api,id,DRF
From: https://www.cnblogs.com/minqiliang/p/16822092.html

相关文章

  • ASP.NET Web API RC版本新特性:Web API的帮助文档制作
    InfoQ上有一篇文章是使用IAPIExplorer列举ASP.NETWebAPI,文章针对的版本是ASP.NETWebAPIBeta版本写,IAPIExplorer已经包含在RC版本里了...InfoQ......
  • http响应Last-Modified和ETag以及asp.net web api实现
    基础知识1)什么是”Last-Modified”?在浏览器第一次请求某一个URL时,服务器端的返回状态会是200,内容是你请求的资源,同时有一个Last-Modified的属性标........
  • httppost请求jwt接口,basic认证
    ///<summary>///jwt验证接口///</summary>///<paramname="url"></param>///<paramname="data"></param>///<ret......
  • kubernetes 客户端KubeClient使用及常用api
    KubeClient是kubernetes的C#语言客户端简单易用,KubeClient是.NETCore(目标​​netstandard1.4​​​)的可扩展KubernetesAPI客户端,github地址:​​https://github.com/tin......
  • 为什么 web 开发人员需要迁移到. NET Core, 并使用 ASP.NET Core MVC 构建 web 和 web
    ​​2018.NET开发者调查报告:.NETCore是怎么样的状态​​,这里我们看到了还有非常多的.net开发人员还在观望,本文给大家一个建议。这仅代表我的个人意见,我有充分的理由......
  • C# WebAPI 项目
    备注:对于C#开发人员,接口服务大部分是WCF(需要配置很多),WebService(走的XML,相比json同样的内容大很多),一般应用程序(大量接口可能会有点麻烦),WebAPi则借鉴了以上的有点,屏蔽了......
  • 使用API网关构建微服务
     使用传统的异步回调方法编写API组合代码会让你迅速坠入回调地狱。代码会变得混乱、难以理解且容易出错。一个更好的方法是使用响应式方法以一种声明式样式编写API网关代码......
  • Colletion接口常用方法
    packagecom.msb.test01;importjava.util.ArrayList;importjava.util.Arrays;importjava.util.Collection;importjava.util.List;/***@author:liu*日......
  • MD接口文档
    示例接口地址:/demo返回格式:JSON请求方式:POST接口备注:这是一个接口文档示例请求参数说明:名称类型必填(Y/N)说明pwstringY密码JSON请求......
  • PuppeteerSharp: 更友好的 Headless Chrome C# API
    前端就有了对headless浏览器的需求,最多的应用场景有两个UI自动化测试:摆脱手工浏览点击页面确认功能模式爬虫:解决页面内容异步加载等问题也就有了很多杰出的实现,前端经常......