快速入手-基于DRF的过滤、分页、查询配置(十五)
1、过滤需要安装插件
pip install django-filter
2、注册
INSTALLED_APPS = [
"django.contrib.admin",
"django.contrib.auth",
"django.contrib.contenttypes",
"django.contrib.sessions",
"django.contrib.messages",
"django.contrib.staticfiles",
"rest_framework",
"corsheaders",
"app_drf01.apps.AppDrf01Config",
"api.apps.ApiConfig",
"rest_framework_simplejwt",
"rest_framework_simplejwt.token_blacklist",
"django-filters",
]
REST_FRAMEWORK = {
"DEFAULT_PAGINATION_CLASS": "rest_framework.pagination.LimitOffsetPagination",
"PAGE_SIZE": 2,
"DEFAULT_AUTHENTICATION_CLASSES": (
"rest_framework_simplejwt.authentication.JWTAuthentication",
),
# "DEFAULT_THROTTLE_CLASSES": [
# "rest_framework.throttling.AnonRateThrottle", # 未认证用户
# "rest_framework.throttling.UserRateThrottle", # 已认证用户
# ],
"DEFAULT_THROTTLE_RATES": { # 频率配置
"anon": "200/day", # 匿名用户每分钟最多访问 200 次
"user": "500/day", # 认证用户每分钟最多访问 500 次
},
#全局配置
"DEAFULT_FILTER_BACKENDS": ["django_filters.rest_framework.DjangoFilterBackend"],
}
完整代码
from pathlib import Path
import os# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = "django-insecure-ws(9g7m^dty#ouzqdii*s^((+a33v@qn654gm0+b)_97)#sx-e"
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
ALLOWED_HOSTS = []
# Application definitionINSTALLED_APPS = ["django.contrib.admin","django.contrib.auth","django.contrib.contenttypes","django.contrib.sessions","django.contrib.messages","django.contrib.staticfiles","rest_framework","corsheaders","app_drf01.apps.AppDrf01Config","api.apps.ApiConfig","rest_framework_simplejwt","rest_framework_simplejwt.token_blacklist","django_filters",
]REST_FRAMEWORK = {"DEFAULT_PAGINATION_CLASS": "rest_framework.pagination.LimitOffsetPagination","PAGE_SIZE": 2,"DEFAULT_AUTHENTICATION_CLASSES": ("rest_framework_simplejwt.authentication.JWTAuthentication",),# "DEFAULT_THROTTLE_CLASSES": [# "rest_framework.throttling.AnonRateThrottle", # 未认证用户# "rest_framework.throttling.UserRateThrottle", # 已认证用户# ],"DEFAULT_THROTTLE_RATES": { # 频率配置"anon": "200/day", # 匿名用户每分钟最多访问 200 次"user": "500/day", # 认证用户每分钟最多访问 500 次},# "DEAFULT_FILTER_BACKENDS": ["django_filters.rest_framework.DjangoFilterBackend"],
}MIDDLEWARE = ["corsheaders.middleware.CorsMiddleware","django.middleware.security.SecurityMiddleware","django.contrib.sessions.middleware.SessionMiddleware","django.middleware.common.CommonMiddleware","django.middleware.csrf.CsrfViewMiddleware","django.contrib.auth.middleware.AuthenticationMiddleware","django.contrib.messages.middleware.MessageMiddleware","django.middleware.clickjacking.XFrameOptionsMiddleware",
]ROOT_URLCONF = "maker_drf.urls"
TEMPLATES = [{"BACKEND": "django.template.backends.django.DjangoTemplates","DIRS": [],"APP_DIRS": True,"OPTIONS": {"context_processors": ["django.template.context_processors.debug","django.template.context_processors.request","django.contrib.auth.context_processors.auth","django.contrib.messages.context_processors.messages",],},},
]WSGI_APPLICATION = "maker_drf.wsgi.application"
DATABASES = {"default": {"ENGINE": "django.db.backends.mysql","NAME": "python_demo", # 数据库名称"USER": "root", # 数据库用户名"PASSWORD": "1234567890", # 数据库密码"HOST": "127.0.0.1", # 数据库主机地址"PORT": "13306", # 数据库端口}
}AUTH_PASSWORD_VALIDATORS = [{"NAME": "django.contrib.auth.password_validation.UserAttributeSimilarityValidator",},{"NAME": "django.contrib.auth.password_validation.MinimumLengthValidator",},{"NAME": "django.contrib.auth.password_validation.CommonPasswordValidator",},{"NAME": "django.contrib.auth.password_validation.NumericPasswordValidator",},
]# 设置默认语言为中文
LANGUAGE_CODE = "zh-hans" # 简体中文# 设置默认时区
TIME_ZONE = "Asia/Shanghai" # 上海时区USE_I18N = TrueUSE_TZ = TrueSTATIC_URL = "static/"DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField"# 媒体文件的存储路径
MEDIA_ROOT = os.path.join(BASE_DIR, "media")# 媒体文件的访问 URL
MEDIA_URL = "/media/"from datetime import timedeltaSIMPLE_JWT = {"ACCESS_TOKEN_LIFETIME": timedelta(minutes=5), # Access Token 的有效期"REFRESH_TOKEN_LIFETIME": timedelta(days=7), # Refresh Token 的有效期"ROTATE_REFRESH_TOKENS": True, # 刷新时是否生成新的 Refresh Token"BLACKLIST_AFTER_ROTATION": True, # 是否在刷新后废弃旧的 Refresh Token"ALGORITHM": "HS256", # 使用的加密算法"SIGNING_KEY": SECRET_KEY, # 设置签名密钥"VERIFYING_KEY": None, # 如果使用公钥算法,可以配置验证密钥
}CORS_ALLOW_CREDENTIALS = True
CORS_ALLOW_ALL_ORIGINS = True
CORS_ALLOW_HEADERS = ["accept","accept-encoding","authorization","content-type","dnt","origin","user-agent","x-csrftoken","x-requested-with",
]
CORS_ALLOW_METHODS = ["DELETE","GET","OPTIONS","PATCH","POST","PUT",
]
3、在对应的视图函数中添加(局部生效配置)
# 指定位置配置过滤
#filter_backends = [filters.DjangoFilterBackend] 指定视图中类部分生效,提前需要注释掉上边标红的全局配置,开启以下注释即可
# filter_backends = [filters.DjangoFilterBackend]
filterset_fields = ["name", "gid", "id"] # 允许通过这些字段进行过滤
注意:在apifox测试每个字段的值必须要完全匹配才可以,否则数据找不到。
完整代码如下所示
from django.shortcuts import render, HttpResponse
from rest_framework.response import Response
from rest_framework.decorators import actionfrom rest_framework.viewsets import GenericViewSet
from rest_framework.mixins import (ListModelMixin,CreateModelMixin,RetrieveModelMixin,UpdateModelMixin,DestroyModelMixin,
)
from rest_framework.viewsets import ModelViewSet
from rest_framework import serializersfrom rest_framework.authentication import (BasicAuthentication,SessionAuthentication,
)
from rest_framework.permissions import (IsAuthenticated,AllowAny,IsAuthenticatedOrReadOnly,
)from .models import *
from api.serializer import *
from rest_framework.throttling import UserRateThrottle, AnonRateThrottle
from django_filters import rest_framework as filters# 这种写法实现所有的增删改查,不能够单独进行操作
# class Linkapi(ModelViewSet):
# 不仅可以实现所有的增删改查,而且可以单独也可以全部包含增删改查
class Linkapi(GenericViewSet,ListModelMixin,CreateModelMixin,RetrieveModelMixin,UpdateModelMixin,DestroyModelMixin,
):queryset = Link.objects.all()serializer_class = LinkSerializer# authentication_classes = [SessionAuthentication]# IsAuthenticated 授权登录后可以访问# IsAuthenticatedOrReadOnly 只允许查询permission_classes = [IsAuthenticatedOrReadOnly]# 限流局部配置UserRateThrottle AnonRateThrottlethrottle_classes = [UserRateThrottle, AnonRateThrottle]# 自定义分页pagination_class = MyPage# 指定位置配置过滤filter_backends = [filters.DjangoFilterBackend]filterset_fields = ["name", "gid", "id"] # 允许通过这些字段进行过滤# 在原有的二级路由中自定义添加三级路由路径# 访问路径/api/linkapi/{pk}/login/@action(methods=["get", "POST"],detail=True,url_path="login",)def login(self, request, pk):queryset = self.get_queryset()serializer = self.get_serializer(queryset, many=True)return Response(serializer.data)# detail为false表示路径名格式应该为/api/linkapi/get_new_5/@action(methods=["get",],detail=False,)def get_new_2(self, request):obj = Link.objects.all().filter()[:2]serializer = self.get_serializer(instance=obj, many=True)return Response(serializer.data)
4、基于apifox测试
http://127.0.0.1:8000/api/linkapi/ 添加params相关参数(gid,name,id),另外size是之前分页的参数
后端日志记录:
[01/Apr/2025 09:13:51] "GET /api/linkapi/?size=10&gid=2&id=29&name=%E6%B5%8B%E8%AF%952222eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxNzQzNDY5NDY4LCJpYXQiOjE3NDM0NjkxNjgsImp0aSI6IjhlOTlhMjI2YjYyYjQyOWM4NzY3NjMxMTEzOWE3ZTE3IiwidXNlcl9pZCI6MX0.aH99SmrKbrae4pZmt6SCwkl95uJYbS3cUnIphpSKMHk HTTP/1.1" 200 471
5、代码下载
链接: https://pan.baidu.com/s/15COVJcs5XHZYzX5be6DaJQ?pwd=5p6e 提取码: 5p6e
相关文章:
快速入手-基于DRF的过滤、分页、查询配置(十五)
1、过滤需要安装插件 pip install django-filter 2、注册 INSTALLED_APPS [ "django.contrib.admin", "django.contrib.auth", "django.contrib.contenttypes", "django.contrib.sessions", "django.contrib.messages",…...
最新Spring Security实战教程(八)Remember-Me实现原理 - 持久化令牌与安全存储方案
🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志 🎐 个人CSND主页——Micro麦可乐的博客 🐥《Docker实操教程》专栏以最新的Centos版本为基础进行Docker实操教程,入门到实战 🌺《RabbitMQ》…...
gcc 链接顺序,静态库循环依赖问题
链接过程由链接器 ld 负责。通常 GCC 间接驱动之。 越底层的库,在链接命令行中的位置应越靠后。 文章目录 链接过程※ 但是对于静态库,链接器仅提取当前未解析符号所需的对象文件,未使用的对象文件会被丢弃。静态库(.a)…...
linux内核漏洞检测利用exp提权
案例一dirtycow(CVE-2016-5159) 有个前置知识就是 获取liunx的内核 hostnamectl uname -a 然后这个内核漏洞进行提权的步骤也是和手工win进行提权差不多 也是需要使用辅助工具在本地进行辅助检测 然后去nomi-sec/PoC-in-GitHub: &#…...
【学Rust写CAD】21 2D 点(point.rs)
源码 //matrix/point.rs use std::ops::Mul; use super::algebraic_units::{Zero, One}; use super::generic::Matrix;/// 点坐标结构体 #[derive(Debug, Clone, Copy, PartialEq)] pub struct Point<X, Y>(Matrix<X, Y, One, Zero, Zero, One>);impl<X, Y>…...
Jmeter的压测使用
Jmeter基础功能回顾 一、创建Jmeter脚本 1、录制新建 (1)适用群体:初学者 2、手动创建 (1)需要了解Jmeter的常用组件 元件:多个类似功能组件的容器(类似于类) 各元件作用 组件…...
C语言--统计输入字符串中的单词个数
输入 输入:大小写字母以及空格,单词以空格分隔 输出:单词个数 代码 如果不是空格且inWord0说明是进入单词的第一个字母,则单词总数加一。 如果是空格,证明离开单词,inWord 0。 #include <stdio.h&g…...
《雷神之锤 III 竞技场》快速求平方根倒数的计算探究
1. 《雷神之锤 III 竞技场》快速求平方根导数源代码 此处先列出其源代码,这段代码的目标是计算一个浮点数平方根的导数,也就是如下形式: f ( x ) 1 x f(x) \frac{1}{\sqrt{x}} f(x)x 1这段代码可以说非常难以理解,尤其是 …...
深入解析 Java 8 Function 接口:函数式编程的核心工具
精心整理了最新的面试资料和简历模板,有需要的可以自行获取 点击前往百度网盘获取 点击前往夸克网盘获取 Java 8 引入的 java.util.function.Function 接口是函数式编程范式的核心组件之一,本文将全面解析其使用方法,并通过丰富的代码示例演…...
软件重构与项目进度的矛盾如何解决
软件重构与项目进度之间的矛盾可以通过明确重构目标与范围、采用渐进式重构策略、优化项目管理流程、提高团队沟通效率、建立重构意识文化等方式解决。其中,采用渐进式重构策略尤为关键。渐进式重构是指在日常开发过程中,以小步骤持续进行重构࿰…...
redis的geo结构实现[附近商铺]功能
先上结论 geo地理位置算出来是不准的 实现思路 redis6.2支持了经纬度数据格式 支持经纬度检索 需要将redis升级 否则会报错不支持命令 pom文件如果spring-data-redis是2.7.9的boot版本则要改一下支持geo: <dependency><groupId>org.springframework.boot</g…...
W3C XML Schema 活动
W3C XML Schema 活动 概述 W3C XML Schema(XML Schema)是万维网联盟(W3C)定义的一种数据描述语言,用于定义XML文档的结构和约束。XML Schema为XML文档提供了一种结构化的方式,确保数据的一致性和有效性。本文将详细介绍W3C XML Schema的活动,包括其发展历程、主要特点…...
深入解析C++类:面向对象编程的核心基石
一、类的本质与核心概念 1.1 类的基本定义 类是将**数据(属性)与操作(方法)**封装在一起的用户自定义类型,是面向对象编程的核心单元。 // 基础类示例 class BankAccount { private: // 访问控制string owner; …...
MySQL 复制与主从架构(Master-Slave)
MySQL 复制与主从架构(Master-Slave) MySQL 复制与主从架构是数据库高可用和负载均衡的重要手段。通过复制数据到多个从服务器,既可以实现数据冗余备份,又能分担查询压力,提升系统整体性能与容错能力。本文将详细介绍…...
2025年上软考——【数据库系统工程师】考前60天冲刺学习指南!!!
距离2025上半年“数据库系统工程师”考试已经不足两个月了,还没有准备好的小伙伴赶紧行动起来。为了帮助大家更好的冲刺学习,特此提供一份考前60天学习指南。本指南包括考情分析、学习规划、冲刺攻略三个部分,可以参考此指南进行最后的复习要…...
如果数据包的最后一段特别短,如何处理?
在处理TCP粘包/拆包时,如果最后一个数据段特别短(例如仅包含部分包头部或部分数据体),需要通过合理的缓冲区和协议设计来确保数据完整性。以下是具体处理方案: 1. 缓冲区管理:保留不完整数据 核心思想&…...
vue修饰符
在 Vue 中,修饰符是一种特殊的后缀,用于改变指令的默认行为 stop <template><div><h2>vue修饰符</h2><div class"box" click"boxClikc"><button click"btnClick">按钮</button&…...
Redis-06.Redis常用命令-列表操作命令
一.列表操作命令 LPUSH key value1 [value2]: LPUSH mylist a b c d: LRANGE key start stop: LRANGE mylist 0 -1: lrange mylist 0 2: d c b RPOP KEY:移除并返回最后一个元素 RPOP list a LLEN key…...
LTSPICE仿真电路:(二十四)MOS管推挽驱动电路简单仿真
1.Mos管驱动电路基本的拓扑 前面在十一篇的时候学习了MOS管的简单的应用, 这一篇继续补充MOS管的驱动电路。 这个电路应该是最基本的电路仿真,先看电路以及仿真结果,以下仿真结果的电压皆为信号发生器提供的波形图。 看仿真结果比较明了&a…...
GFS论文阅读笔记
文章目录 摘要一、引言二、设计总览2.1、假设2.2、接口2.3、架构2.4 单Master2.5 Chunk大小2.6 元数据2.7 一致性模型 3 系统交互3.1 租约和变更顺序3.2 数据流3.3 原子性的操作:Record append3.4 快照-SNAPSHOT 4. master操作4.1 namespace的管理与锁定4.2 副本的分…...
6. 王道_网络协议
1 网络协议和网络模型 2 TCP/IP协议族概览 2.1 四层模型的各层实体 2.2 协议数据单元的转换 2.3 常见协议以及分层 2.4 ifconfig 2.5 本地环回设备 3 以太网 3.1 以太网和交换机 3.2 以太网帧 MAC地址大小 48位 6字节 IP地址 32位 4字节 port 16位 2字节 3.3 ARP协议 4 IP协…...
《K230 从熟悉到...》颜色识别
《K230 从熟悉到...》颜色识别 颜色识别的基本原理 《庐山派 K230 从熟悉到...》颜色识别 颜色识别是计算机视觉中的重要组件,它允许算法在图像中检测、识别和分类不同颜色。 颜色识别的基本原理 颜色识别的核心是通过分析图像中像素点的颜色信息,从…...
实时内核稳定性 - scheduling while atomic
scheduling while atomic问题 根因:未成对使用获取cpu_id的函数[ 291.881071][ 0] [XW]: type=0x00000003 cpuid=4 time=1725877230 subj...
数据编排与Dagster:解锁现代数据管理的核心工具
在数据驱动的时代,如何高效管理复杂的数据管道、确保数据质量并实现团队协作?本文深入探讨数据编排的核心概念,解析其与传统编排器的差异,并聚焦开源工具Dagster如何以“资产为中心”的理念革新数据开发流程,助力企业构…...
stc8g1k08a定时读取内部1.2v电压值发送到串口1
1189mv #include "stc8g.h"void t0_timer_init(){EA 1;//总中断控制位,启用中断//启用定时器0中断ET0 1;//允许t0中断AUXR | 0x80; //定时器时钟1T模式 t0不频 t1 12分频TMOD & 0xF0; //设置定时器模式TL0 0xCD; //设置定时初始值 205TH0 0xD4; …...
前端开发时的内存泄漏问题
目录 🔍 什么是内存泄漏(Memory Leak)?🚨 常见的内存泄漏场景1️⃣ 未清除的定时器(setInterval / setTimeout)2️⃣ 全局变量(变量未正确释放)3️⃣ 事件监听未清除4️⃣…...
「青牛科技 」GC4931P/4938/4939 12-24V三相有感电机驱动芯片 对标Allegro A4931/瑞盟MS4931
芯片描述: • 芯片工作电压 4.7-36V ( GC4931P ) • 芯片工作电压 7.5-36V ( GC4938/4939 ) • 外置 mos 驱动, NN 结构,内置升压预驱 • QFN5X5-28 封装,带 ePAD 散热&#…...
2025 年山东危化品经营单位考试攻略分享
山东的考试在全省统一标准。理论考试深入考查危化品相关标准规范,如《危险化学品重大危险源辨识》等。对于危化品储存设施的设计与维护知识要求较高。实际操作考核注重在山东化工园区常见的作业场景,如大型储罐区的操作。 报名准备材料与其他省份类似…...
RustDesk 开源远程桌面软件 (支持多端) + 中继服务器伺服器搭建 ( docker版本 ) 安装教程
在需要控制和被控制的电脑上安装软件 github开源仓库地址 https://github.com/rustdesk/rustdesk/releases 蓝奏云盘备份 ( exe ) https://geek7.lanzouw.com/iPf592sadqrc 密码:4esi 中继服务器设置 使用docker安装 sudo docker image pull rustdesk/rustdesk-server sudo…...
CMake 中的置变量
在 CMake 中,变量是存储和传递信息的重要方式。以下是一些常用的 CMake 变量,以表格形式列出,包括它们的名称、含义和常见用途: 变量名称含义常见用途CMAKE_CURRENT_SOURCE_DIR当前处理的 CMakeLists.txt 文件所在的源代码目录的…...
前后端数据序列化:从数组到字符串的旅程(附优化指南)
🌐 前后端数据序列化:从数组到字符串的旅程(附优化指南) 📜 背景:为何需要序列化? 在前后端分离架构中,复杂数据类型(如数组、对象)的传输常需序列化为字符…...
为什么你涨不了粉?赚不到技术圈的钱?
“你的代码如果能打造市值百亿的产品,为什么不能为你的未来加冕?” 这不仅是一句口号,而是一段激励人心的故事的起点。想象一下,一个普通的程序员,在无数个深夜独自敲击代码中,他的每一行代码都承载着对未…...
MATLAB之数据分析图系列 三
三维堆叠柱状图 Bar3StackPlot.m文件 clc; clear; close all; %三维堆叠柱状图 %% 数据准备 % 读取数据 load data.mat % 初始化 dataset X; s 0.4; % 柱子宽度 n size(dataset,3); % 堆叠组数%% 图片尺寸设置(单位:厘米) figureUnits c…...
【nvidia】Windows 双 A6000 显卡双显示器驱动更新问题修复
问题描述:windows自动更新nvidia驱动会导致只检测得到一个A6000显卡。 解决方法 下载 A6000 驱动 572.83-quadro-rtx-desktop-notebook-win10-win11-64bit-international-dch-whql.exehttps://download.csdn.net/download/qq_18846849/90554276 不要直接安装。如…...
使用Docker快速部署Dify
使用Docker快速部署Dify:一站式AI应用开发平台 Dify 是一款开源的AI应用开发平台,支持快速构建基于大模型的AI应用。通过Docker部署Dify,可以简化环境配置流程,实现高效部署和扩展。本教程将详细介绍如何通过Docker快速部署Dify。 前置条件 服务器/本地环境:Linux/Wind…...
Uniapp 实现微信小程序滑动面板功能详解
文章目录 前言一、功能概述二、实现思路三、代码实现总结 前言 Uniapp 实现微信小程序滑动面板功能详解 一、功能概述 滑动面板是移动端常见的交互组件,通常用于在页面底部展开内容面板。本文将介绍如何使用 Uniapp 开发一个支持手势滑动的底部面板组件࿰…...
PyQt5和OpenCV车牌识别系统
有需要请加文章底部Q哦 可远程调试 PyQt5和OpenCV车牌识别系统 一 介绍 此车牌识别系统基于PyQt5和OpenCV开发,蓝牌,新能源(绿牌),黄牌,白牌均可以准确识别,支持中文识别,可以导出识别结果(Excel格式)。此…...
Redis如何在windows中简单安装?
Redis 在官网上有详细的介绍如何安装,但是看着也乱和麻烦。所以教大家直接用大佬整理好的。 Redis安装 ✨进入安装包地址✨安装Redis✨测试下 ✨进入安装包地址 安装包地址: https://github.com/tporadowski/redis/releases Redis安装包是在github上&am…...
在centos7上安装ragflow
在centos7上安装ragflow 前置条件,安装centos7,换yum源,安装docker,安装git 参考文章:利用vmware快速安装一个可以使用的centos7系统-CSDN博客 ragflow的部署参考文章: https://mp.weixin.qq.com/s/Hor…...
LabVIEW多线程
在 LabVIEW 中,多线程编程是提升程序执行效率的关键手段,尤其是在需要并行处理数据采集、控制执行和用户界面交互的场景下。LabVIEW 本身是基于数据流(Dataflow)的编程语言,天然支持多线程,但要高效利用多线…...
MySQL 错误 报错:Table ‘performance_schema.session_variables’ Doesn’t Exist
mysqldump -uroot -p ca>ca.sql Enter password: mysqldump: Couldnt execute SHOW VARIABLES LIKE gtid\_mode: Table performance_schema.session_variables doesnt exist 解决: USE performance_schema; CREATE TABLE session_variables (VARIABLE_NAME VAR…...
4月2号.
正则表达式的作用: 作用一: 示例: [1-9]表示0不在开头,\\d表示数字,{5,19}表示位数. 拓展: 正则表达式: System.out.println("a".matches(regex:"[a-z&[def]]")); //trueSystem.out.println("&".matches(regex:"[a-z&[def]]&…...
分析sys高问题的方法总结
一、背景 sys高的问题往往属于底层同学更需要关注的问题,sys高的问题往往表现为几种情况,一种是瞬间的彪高,一种是持续的彪高。这篇博客里,我们总结一下常用的分析方法和分析工具的使用来排查这类sys高的问题。 二、通过mpstat配…...
使用Leaflet对的SpringBoot天地图路径规划可视化实践-以黄花机场到橘子洲景区为例
目录 前言 一、路径规划需求 1、需求背景 2、技术选型 3、功能简述 二、Leaflet前端可视化 1、内容布局 2、路线展示 3、转折路线展示 三、总结 前言 在当今数字化与智能化快速发展的时代,路径规划技术已经成为现代交通管理、旅游服务以及城市规划等领域的…...
操作系统(中断 异常 陷阱) ─── linux第28课
目录 1.硬件中断 2. 时钟中断 3. OS本质 4. 软件中断 缺页中断?内存碎片处理?除零野指针错误? 操作系统本质总结 操作系统是对软件硬件资源管理的软件 1.硬件中断 中断向量表(IDT)就是操作系统的⼀部分,启动就加载到内存中了…...
数据接口以及ORM查询
一,Model数据关系: (1)种类: 一对一关系(例如身份证和钥匙,账号密码等,各自一一对应。),一对多关系 (例如一个作者可以有很多作品,…...
clickhouse集群版本部署文档
集群版本介绍 clickhouse是表级别的集群,一个clickhouse实例可以有分布式表,也可以有本地表。本文介绍4个节点的clickhouse情况下部署配置。 分布式表数据分成2个分片,2个副本,总共4份数据: 节点1数据:分…...
《全栈+双客户端Turnkey方案》架构设计图
今天分享一些全栈双客户端Turnkey方案的架构与结构图。 1:三种分布式部署方案:网关方案,超级服务器单服方案,直连逻辑服方案 2: 单服多线程核心架构: 系统服务逻辑服服务 3: 系统服务的多线程池调度设计 4:LogicServer Update与ECS架构&…...
2025年2月一区SCI-壮丽细尾鹩莺算法Superb Fairy-wren Optimization-附Matlab免费代码
引言 本期介绍一种新的元启发式算法——壮丽细尾鹩莺优化算法Superb Fairy-wren Optimization algorithm,SFOA。该算法结合了壮丽细尾鹩莺群体中幼鸟的发育,繁殖后喂养幼鸟的行为,以及它们躲避捕食者的策略,于2025年2月最新发表在…...
Mac下小智AI本地环境部署
可以进行聊天、编写程序、播放歌曲等等的小智语音聊天小助手,在Mac环境下修改源代码,值得拥有。本篇内容主要讲解Mac下环境的搭建,WebSocket的修改。注:环境python3.12.0、ESP-IDF5.4.0、开发板ESP32S3。 目录 1.Git安装2.Python…...