Django系列之DRF简单使用
基于ModelViewSets的简单使用
models.py
from django.db import modelsclass AuthorDetail(models.Model):gender = models.CharField(max_length=8)birthday = models.DateField()telephone = models.BigIntegerField()addr = models.CharField(max_length=64)class Author(models.Model):name = models.CharField(max_length=32)age = models.IntegerField()ad = models.OneToOneField(AuthorDetail, on_delete=models.CASCADE, null=True)def __str__(self):return self.name
serializers.py
from rest_framework import serializersclass AuthorSerializer(serializers.ModelSerializer):class Meta:model = Authorfields = "__all__"# 检验条件extra_kwargs = {"age": {"min_value": 0, "max_value": 200}}
app01/views.py
from rest_framework.decorators import action
from rest_framework.response import Response
from rest_framework.viewsets import ModelViewSetfrom app01.models import Author
from app01.serializers import AuthorSerializerclass AuthorModelViewsets(ModelViewSet):queryset = Author.objects.all()serializer_class = AuthorSerializer@action(methods=["get"], detail=False) # detail=False or True: True: 系统会自动在生成的路由中添加pk值def top3(self, request):top3 = self.queryset.order_by("-age")[:3]serializer = AuthorSerializer(instance=top3, many=True)return Response(serializer.data)@action(methods=["get"], detail=True) # 如果视图逻辑中需要pk值,detail就得是Truedef detailone(self, request, pk):author_detail = Author.objects.get(pk=pk)print(author_detail)return Response({"name": author_detail.name, "age": author_detail.age})
project/urls.py
from django.contrib import admin
from django.urls import path, includeurlpatterns = [path('admin/', admin.site.urls),path("league/", include("app01.urls")),
]
app01/urls.py
from rest_framework.routers import SimpleRouterfrom app01.views import AuthorModelViewsetsurlpatterns = []router = SimpleRouter()
router.register("author", AuthorModelViewsets)urlpatterns += router.urls
使用 SimpleRouter() 可以帮我们实现五个基础的 action 方法:
{“get”: “list”, “post”: “create”, “get/id”: “retrieve”, “put”: “update”, “delete”: “`destroy”}
如果需要增加一些其他的路由视图,就需要用 action 声明了。
action声明
如果需要增加一些其他自定义视图函数,则需要使用到 action 装饰器:
from rest_framework.decorators import action@action(methods=["get"], detail=False)
def top3(self, request):...@action(methods=["get"], detail=True)
def detailone(self, request, pk):...
detail 参数: True or False,如果视图中需要用到pk值,那就让 detail=True。
True:系统会自动在生成的路由中添加pk值,比如

False:不会添加pk值到路由中。
相关文章:
Django系列之DRF简单使用
基于ModelViewSets的简单使用 models.py from django.db import modelsclass AuthorDetail(models.Model):gender models.CharField(max_length8)birthday models.DateField()telephone models.BigIntegerField()addr models.CharField(max_length64)class Author(models…...
新闻标题文本分类任务
目录 知识回顾使用debug调试 知识回顾 预处理内容 文本主要进行清洗、分词/分字 ID替换(不希望计算机看到文字,而是ID),通过语料表来表示,根据频率高低来分配ID号 文本的ID映射到文本的一个特征向量,进行词嵌入(Embedding)&…...
自己实现MyBatis 底层机制--抽丝剥茧(上)
😀前言 本篇博文是学习过程中的笔记和对于MyBatis底层机制的分析思路,希望能够给您带来帮助😊 🏠个人主页:晨犀主页 🧑个人简介:大家好,我是晨犀,希望我的文章可以帮助到…...
Django后端执行成功或失败状态码
后端执行成功或失败以状态码的形式告诉前端,处理成功返回200系列状态码,执行前端then里面的代码;处理失败返回400/500系列状态码,执行catch里面的代码。 200 OK :服务器成功返回用户请求的数据 201 CREATED ÿ…...
Prometheus中的关键设计
1、标准先行,注重生态 Prometheus 最重要的规范就是指标命名方式,数据格式简单易读。比如,对于应用层面的监控,可以要求必须具备这几个信息。 指标名称 metric Prometheus 内置建立的规范就是叫 metric(即 __name__…...
Centos7 安装yum
1、检查主机名和网络并且配置/etc/hosts文件 查看主机名:hostname 查看ip :ifconfig vi /etc/hosts//添加把主机名和IP配置进去hosts文件192.18.56.111 orcale12c2、关闭防火墙 systemctl status firewalld.service//检查防火墙状态 暂时关闭防火墙,下…...
无涯教程-Lua - 简介
Lua是一种轻量语言,它的官方版本只包括一个精简的核心和最基本的库。这使得Lua体积小、启动速度快。它用ANSI C语言编写并以源代码形式开放,编译后仅仅一百余K,可以很方便的嵌入别的程序里。和许多“大而全”的语言不一样,网络通信…...
【第一阶段】kotlin语言引用数据类型
Java语言中有两种数据类型 第一种:基本数据类型 如int double等 第二种:引用数据类型。如String kotlin只有一种数据类型,看起来都是引用数据类型,实际上编译器会在Java字节码中,修改成基本类型 //Java语言中有两种数…...
BUU [网鼎杯 2020 朱雀组]phpweb
BUU [网鼎杯 2020 朱雀组]phpweb 众生皆懒狗。打开题目,只有一个报错,不知何从下手。 翻译一下报错,data()函数:,还是没有头绪,中国有句古话说的好“遇事不决抓个包” 抓个包果然有东西,仔细一看这不就分别是函数和参…...
使用WebMvcConfigurationSupport后导致原来返回的json数据变为了xml的解决方法
问题 未使用WebMvcConfigurationSupport拦截时返回的数据都是JSON格式,使用WebMvcConfigurationSupport做拦截后数据的返回变为了XML的格式。 原因 在Spring框架中,WebMvcConfigurationSupport 是一个类,它可以用于自定义Spring MVC的配置…...
如何判断一个枚举值是否存在(Check if an Enum Value Exists in Java)
目录 Searching an Enum by NameSearching an Enum by ValueSearching an Enum by Integer ValueExceptions Thrown from Search Methods Searching an Enum by Name public enum Direction {EAST, WEST, SOUTH, NORTH;public static Direction findByName(String name) {Dire…...
网工内推 | 网络安全工程师,最高15K,有高温补贴
01 超圣信华 招聘岗位:网络安全工程师 职责描述: 1. 负责网络安全产品的售前沟通交流、现状调研、方案设计、产品测试、产品选型和招投标等工作。 2. 负责网络安全集成项目的实施管理、项目交付文档编制以及项目验收等工作。 3. 负责网络安全产品的售后…...
Android—ADB命令
文章目录 ADB常用命令 ADB常用命令 ADB常用命令如下: 方法描述adb help查看ADB命令帮助adb devices查看Android设备及端口号adb connect连接Android设备adb start-server开启服务adb kill-server关闭服务adb install ***.apk安装Android应用adb install -r ***.ap…...
音视频知识:MPEG-4、H264、MP4、AAC之间的关系
MPEG-4 一种编码标准。是国际标准化组织 (ISO) 主要针对消费类应用,已经针对运动图像压缩定义的标准。MPEG(Moving Picture Experts Group)标准包括 MPEG1、MPEG2与 MPEG4。 MPEG-4标准目前分为27个部分,统称为ISO/IEC14496国际标…...
智能门锁的无线通讯协议有哪些?主要特点是什么?
智能门锁的无线通讯协议主要有以下几种: Wi-Fi:Wi-Fi是一种基于无线局域网的无线通信协议,可以快速传输数据,并支持互联网连接。 ZigBee:ZigBee是一种低功耗、低成本的无线通信协议,适用于大量传感器和设…...
机器学习——异常检测
异常点检测(Outlier detection),⼜称为离群点检测,是找出与预期对象的⾏为差异较⼤的对象的⼀个检测过程。这些被检测出的对象被称为异常点或者离群点。异常点(outlier)是⼀个数据对象,它明显不同于其他的数据对象。异…...
小研究 - 一种复杂微服务系统异常行为分析与定位算法(一)
针对极端学生化偏差(Extreme Studentized &#…...
代码版本管理工具 git
1. 去B站看视频学习,只看前39集: 01-Git概述(Git历史)_哔哩哔哩_bilibili 2.学习Linux系统文本编辑器的使用 vi编辑器操作指令分享 (baidu.com) (13条消息) nano编辑器的使用_SudekiMing的博客-CSDN博客 windows下载安装Git官…...
【计算机视觉中的 GAN 】如何稳定GAN训练(3)
一、说明 在上一篇文章中,我们达到了理解未配对图像到图像翻译的地步。尽管如此,在实现自己的超酷深度GAN模型之前,您必须了解一些非常重要的概念。如本文所提的GAN模型新成员的引入:Wasserstein distance,boundary eq…...
一文讲清楚地图地理坐标系
前言 我最近在做一个和地图有关的项目,这里本人地图采用的是mapbox,其中涉及一个功能需要根据用户输入的地点直接定位到地图上的对应的位置,本人开始想的是直接调用百度的接口根据地名直接获取坐标,发现在地图上的位置有偏移不够…...
linux之kylin系统nginx的安装
一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...
线程同步:确保多线程程序的安全与高效!
全文目录: 开篇语前序前言第一部分:线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分:synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分ÿ…...
Java面试专项一-准备篇
一、企业简历筛选规则 一般企业的简历筛选流程:首先由HR先筛选一部分简历后,在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如:Boss直聘(招聘方平台) 直接按照条件进行筛选 例如:…...
如何在最短时间内提升打ctf(web)的水平?
刚刚刷完2遍 bugku 的 web 题,前来答题。 每个人对刷题理解是不同,有的人是看了writeup就等于刷了,有的人是收藏了writeup就等于刷了,有的人是跟着writeup做了一遍就等于刷了,还有的人是独立思考做了一遍就等于刷了。…...
在Ubuntu24上采用Wine打开SourceInsight
1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...
【VLNs篇】07:NavRL—在动态环境中学习安全飞行
项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战,克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...
Java编程之桥接模式
定义 桥接模式(Bridge Pattern)属于结构型设计模式,它的核心意图是将抽象部分与实现部分分离,使它们可以独立地变化。这种模式通过组合关系来替代继承关系,从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...
Java毕业设计:WML信息查询与后端信息发布系统开发
JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发,实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构,服务器端使用Java Servlet处理请求,数据库采用MySQL存储信息࿰…...
Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)
引言 在人工智能飞速发展的今天,大语言模型(Large Language Models, LLMs)已成为技术领域的焦点。从智能写作到代码生成,LLM 的应用场景不断扩展,深刻改变了我们的工作和生活方式。然而,理解这些模型的内部…...
uniapp 集成腾讯云 IM 富媒体消息(地理位置/文件)
UniApp 集成腾讯云 IM 富媒体消息全攻略(地理位置/文件) 一、功能实现原理 腾讯云 IM 通过 消息扩展机制 支持富媒体类型,核心实现方式: 标准消息类型:直接使用 SDK 内置类型(文件、图片等)自…...
