当前位置: 首页 > news >正文

主流编程语言中ORM工具全解析

在不同编程语言中,ORM(Object-Relational Mapping,对象关系映射)工具的设计目标都是简化数据库操作

以下是主流语言中最常用的 ORM 工具,按语言分类介绍其特点、适用场景和典型案例。


一、Python 生态

Python 社区的 ORM 工具丰富,覆盖从轻量到复杂、同步到异步的多种需求。

1. SQLAlchemy
  • 特点:Python 最流行的 ORM 库,支持“全功能 ORM”和“SQL 表达式构建器”两种模式。
    • 全功能 ORM:通过类和对象映射数据库表,支持复杂查询(如多表关联、子查询)。
    • SQL 表达式构建器:允许直接编写接近原生 SQL 的 Python 代码,保留灵活性。
  • 适用场景:中大型项目(如企业级应用、需要跨数据库支持的项目)。
  • 与 Flask 的集成:通过 Flask-SQLAlchemy 扩展,提供与 Flask 路由、配置的深度整合。
  • 示例
    from sqlalchemy import create_engine, Column, Integer, String
    from sqlalchemy.ext.declarative import declarative_base
    from sqlalchemy.orm import sessionmakerBase = declarative_base()
    engine = create_engine('mysql+pymysql://user:pass@localhost/db')class User(Base):__tablename__ = 'users'id = Column(Integer, primary_key=True)name = Column(String(50))# 创建表
    Base.metadata.create_all(engine)# 插入数据
    Session = sessionmaker(bind=engine)
    session = Session()
    new_user = User(name='张三')
    session.add(new_user)
    session.commit()
    
2. Django ORM
  • 特点:Django 框架自带的 ORM,与 Django 深度集成(如模型迁移、Admin 后台)。
    • 语法简洁(如 User.objects.filter(name='张三')),自动生成 SQL。
    • 内置迁移工具(makemigrations),无需手动管理表结构变更。
  • 适用场景:使用 Django 框架的项目(尤其是需要快速开发后台管理系统的场景)。
  • 限制:强依赖 Django 框架,独立项目(非 Django)中使用需额外配置。
3. Peewee
  • 特点:轻量级 ORM,代码量少(仅单个文件),学习成本低。
    • 支持 SQLite、MySQL、PostgreSQL 等主流数据库。
    • 提供“模型-表”映射、查询构建、事务等核心功能,无冗余设计。
  • 适用场景:小型项目(如脚本工具、API 服务)或需要轻量 ORM 的场景。
  • 示例
    from peewee import *db = MySQLDatabase('myapp_db', user='ly', password='...', host='localhost')class User(Model):name = CharField()class Meta:database = dbdb.connect()
    User.create_table()  # 创建表
    User.create(name='张三')  # 插入数据
    
4. Tortoise-ORM
  • 特点:异步 ORM,专为 Python 异步框架(如 FastAPI、Quart)设计。
    • 语法类似 Django ORM,支持异步查询(await 关键字)。
    • 支持 PostgreSQL、MySQL、SQLite。
  • 适用场景:异步 Web 应用(如需要高并发的 API 服务)。

二、Java 生态

Java 生态的 ORM 工具以“功能全面”和“企业级支持”著称。

1. Hibernate
  • 特点:Java 最经典的全功能 ORM,支持自动映射、缓存、事务管理等。
    • 通过 @Entity@Column 等注解定义模型,自动生成 SQL。
    • 支持二级缓存(减少数据库查询次数)。
  • 适用场景:企业级 Java 应用(如 ERP、CRM 系统)。
  • 缺点:配置复杂,性能开销较高(适合对性能要求不极致的场景)。
2. MyBatis(半 ORM)
  • 特点:“半 ORM”工具,更接近原生 SQL。
    • 允许手动编写 SQL 语句(存储在 XML 或注解中),保留对 SQL 的完全控制。
    • 支持动态 SQL(如条件判断、循环),适合复杂查询。
  • 适用场景:需要细粒度控制 SQL 的项目(如性能敏感的交易系统)。
3. Spring Data JPA
  • 特点:基于 Hibernate 的 Spring 扩展,与 Spring 框架深度集成。
    • 通过接口定义查询方法(如 List<User> findByUsername(String username)),自动生成 SQL。
    • 支持声明式事务(通过 @Transactional 注解)。
  • 适用场景:使用 Spring Boot 开发的项目(主流 Java 企业级开发选择)。

三、JavaScript/Node.js 生态

Node.js 生态的 ORM 工具侧重灵活性和对现代前端框架的支持。

1. Sequelize
  • 特点:Node.js 最流行的 ORM,支持 MySQL、PostgreSQL、SQLite 等。
    • 提供模型定义、关联查询、迁移工具(sequelize-cli)。
    • 支持 Promise 和 async/await 语法。
  • 适用场景:Node.js Web 应用(如 Express、Koa 后端)。
  • 示例
    const { Sequelize, Model, DataTypes } = require('sequelize');
    const sequelize = new Sequelize('mysql://user:pass@localhost/db');class User extends Model {}
    User.init({name: DataTypes.STRING
    }, { sequelize });// 插入数据
    User.create({ name: '张三' });
    
2. TypeORM
  • 特点:专为 TypeScript 设计的 ORM,支持装饰器语法(如 @Entity@Column)。
    • 支持数据库迁移、关系映射(一对多、多对多)、事务。
    • 与 NestJS 框架深度集成(主流 TypeScript 后端框架)。
  • 适用场景:TypeScript 项目(如需要类型安全的大型应用)。
3. Knex.js
  • 特点:查询构建器(Query Builder),可视为“轻量级 ORM”。
    • 通过链式调用生成 SQL(如 knex('users').where('name', '张三'))。
    • 支持迁移工具,适合需要自定义 SQL 但又不想手写字符串的场景。

四、其他语言

PHP
  • Doctrine ORM:PHP 最流行的 ORM,支持复杂查询和事务,与 Symfony 框架集成。
  • Eloquent ORM:Laravel 框架自带的 ORM,语法简洁(如 User::where('name', '张三')->get())。
C#
  • Entity Framework (EF Core):跨平台 ORM(支持 .NET Core),与 ASP.NET Core 深度集成。
  • NHibernate:Hibernate 的 C# 实现,支持复杂映射和缓存。
Ruby
  • Active Record:Ruby on Rails 框架自带的 ORM,遵循“约定优于配置”,语法极简(如 User.create(name: '张三'))。
Go
  • GORM:Go 语言最流行的 ORM,支持链式查询、自动迁移,语法接近 SQL。
  • XORM:轻量级 ORM,支持事务、批量操作,适合高并发场景。

相关文章:

主流编程语言中ORM工具全解析

在不同编程语言中&#xff0c;ORM&#xff08;Object-Relational Mapping&#xff0c;对象关系映射&#xff09;工具的设计目标都是简化数据库操作。 以下是主流语言中最常用的 ORM 工具&#xff0c;按语言分类介绍其特点、适用场景和典型案例。 一、Python 生态 Python 社区…...

详解RabbitMQ工作模式之发布确认模式

​​​​​​​ 目录 发布确认模式 概述 消息丢失问题 发布确认的三种模式 实现步骤 应用场景 代码案例 引入依赖 常量类 单条确认 运行代码 批量确认 运行代码 异步确认 运行代码 对比批量确认和异步确认模式 发布确认模式 概述 发布确认模式用于确保消息已…...

Power BI 实操案例,将度量值转化为切片器(动态切换分析指标)

Power BI 实操案例&#xff0c;将度量值转化为切片器&#xff08;动态切换分析指标&#xff09; 想要在Power BI中让度量值也能像维度一样灵活筛选&#xff1f;没问题&#xff0c;这里就为你揭秘如何将度量值转化为切片器&#xff08;动态切换分析指标&#xff09;的实用方法&…...

利用散点图探索宇航员特征与太空任务之间的关系

利用散点图探索宇航员特征与太空任务之间的关系 import matplotlib.pyplot as plt import numpy as np import pandas as pdfrom flexitext import flexitext from matplotlib.patches import FancyArrowPatchplt.rcParams.update({"font.family": "Corbel&quo…...

人工智能的哲学与社会影响

人工智能&#xff08;AI&#xff09;的快速发展对人类社会的方方面面产生了深远的影响。在这部分中&#xff0c;我们将探讨AI对人与机器关系的影响、AI对就业和经济的潜在影响&#xff0c;以及人类与AI共存的可能性和道德议题。同时&#xff0c;我们还将针对大众对AI的一些常见…...

MySQL 中 UPDATE 结合 SELECT 和 UPDATE CASE WHEN 的示例

概述 以下是 MySQL 中 UPDATE 结合 SELECT 和 UPDATE CASE WHEN 的示例&#xff1a; 一、UPDATE 结合 SELECT&#xff08;跨表更新&#xff09; 场景&#xff1a;根据 orders 表中的订单总金额&#xff0c;更新 users 表中用户的 total_spent 字段。 -- 创建测试表 CREATE T…...

FPGA前瞻篇-计数器设计与实现实例

这是本篇文章的设计目标如下所示&#xff1a; 这个 Counter 模块是一个LED 闪烁计数器&#xff0c;设计目标是&#xff1a; 当输入时钟 clk 为 50 MHz 时&#xff0c;每 0.5 秒翻转一次 LED 灯状态。 随后我们开始补充理论知识。 计数是一种最简单基本的运算&#xff0c;计数器…...

运行Spark程序-在Idea中(二)

&#xff08;四&#xff09;使用Maven创建新项目 核心的操作步骤如下&#xff1a; 1.启动idea,选择新建项目。 2.将Scala添加到全局库中。 3.设置maven依赖项。修改pom.xml文件&#xff0c;添加如下&#xff1a; 4.下载依赖。添加完成之后&#xff0c;刷新Maven&#xff0c;它…...

Mosaic数据增强技术

Mosaic 数据增强技术是一种在计算机视觉领域广泛应用的数据增强方法。下面是Mosaic 数据增强技术原理的详细介绍 一、原理 Mosaic 数据增强是将多张图像&#xff08;通常是 4 张&#xff09;按照一定的规则拼接在一起&#xff0c;形成一张新的图像。在拼接过程中&#xff0c;会…...

Kafka、RabbitMQ 和 RocketMQ区别及上手难度

Kafka、RabbitMQ 和 RocketMQ 是三种流行的消息中间件&#xff0c;它们在设计理念、使用场景和上手难度上有显著差异。以下是它们的核心区别和上手难度分析&#xff1a; 1. 核心区别 特性KafkaRabbitMQRocketMQ设计目标高吞吐、分布式日志流处理通用的消息队列&#xff0c;强调…...

.NET 8 + Angular WebSocket 高并发性能优化

.NET 8 Angular WebSocket 高并发性能优化。 .NET 8 WebSocket 高并发性能优化 WebSocket 是一种全双工通信协议&#xff0c;允许客户端和服务端之间保持持久连接。在高并发场景下&#xff0c;优化 WebSocket 的性能至关重要。以下是针对 .NET 8 中 WebSocket 高并发性能优化…...

SimScape物理建模实例1--单质量-弹簧-阻尼系统

实例1模型下载&#xff1a; 【免费】simscape单质量弹簧阻尼模型资源-CSDN文库 如下图所示单质量弹簧阻尼系统&#xff0c;弹簧具有初始压缩量&#xff0c;假设为1m, 质量块除了受到自身重力作用以外&#xff0c;受到弹簧拉力&#xff0c;以及阻尼器阻尼力&#xff0c;根据牛顿…...

5.5.1 WPF中的动画2-基于路径的动画

何为动画?一般只会动。但所谓会动,还不仅包括位置移动,还包括角度旋转,颜色变化,透明度增减。动画本质上是一个时间段内某个属性值(位置、颜色等)的变化。因为属性有很多数据类型,它们变化也需要多种动画类比如: BooleanAnimationBase\ ByteAnimationBase\DoubleAnima…...

JVM对象分配与程序崩溃排查

一、new 对象在 JVM 中的过程 在 JVM 中通过 new 关键字创建对象时&#xff0c;会经历以下步骤&#xff1a; 内存分配 对象的内存分配在 堆&#xff08;Heap&#xff09; 中&#xff0c;优先在 新生代&#xff08;Young Generation&#xff09; 的 Eden 区 分配。分配方式取决…...

基于RT-Thread驱动EEPROM_AD24C02

基于RT-Thread驱动EEPROM_AD24C02 前言一、硬件设计二、软件设计三、测试1、eeprom_test&#xff08;&#xff09;测试2、基础操作字节实验3、多字节读写 前言 存储容量2048位&#xff0c;内部组织256x8&#xff08;2K&#xff09;&#xff0c;即256个字节的存储单元&#xff…...

VUE中通过DOM导出PDF

最终效果 前端导出PDF的核心在于样式的绘制上&#xff0c;这里其实直接使用CSS进行绘制和布局就行&#xff0c;只不过需要计算好每页DIV盒子的大小&#xff0c;防止一页放不下造成样式错乱。 项目依赖 项目是Vue3 TS npm i html2canvas1.4.1 npm i jspdf3.0.1工具类(htmlToPdf…...

sql语句面经手撕(定制整理版)

一张表 店铺id 商品id 销售数量 问&#xff1a;查询总销售数量最多的店铺 SELECT shop_id,SUM(quantity) AS total_quantity FROM sales GROUP BY shop_id ORDER BY total_quantity DESC LIMIT 1; 学生总分名最高的 SELECT student_id,SUM(score) AS total_score FROM score…...

pdf 不是扫描件,但却无法搜索关键词【问题尝试解决未果记录】

一、不是扫描件但不能搜索的原因 1. 情况一&#xff1a;文字被转成了“图形文字” 有些PDF文件虽然看起来像是文字&#xff0c;其实是图片或者矢量图格式&#xff0c;不能直接搜索。 2. 情况二&#xff1a;PDF被加密 有些PDF设置了“内容复制/提取”权限受限&#xff0c;即使…...

android14优化ntp时间同步

简介 网络时间协议NTP&#xff08;Network Time Protocol&#xff09;是TCP/IP协议族里面的一个应用层协议&#xff0c;用来使客户端和服务器之间进行时钟同步&#xff0c;提供高精准度的时间校正。 当机器的ntp时间同步出现问题时&#xff0c;可以从ntp配置方面进行优化&…...

【Ansible】之inventory主机清单

前言 本篇博客主要解释Ansible主机清单的相关配置知识 一、inventory 主机清单 Inventory支持对主机进行分组&#xff0c;每个组内可以定义多个主机&#xff0c;每个主机都可以定义在任何一个或多个主机组内。 如果是名称类似的主机&#xff0c;可以使用列表的方式表示各个主机…...

QT5.14安装以及新建基础项目

进入qt中文网站&#xff1a;Qt | 软件开发全周期的各阶段工具 额&#xff0c;考虑新手可能还是找不到&#xff0c;我就分享一下我下载的的吧 通过网盘分享的文件&#xff1a;qt-opensource-windows-x86-5.14.2.exe 链接:https://pan.baidu.com/s/1yQTRp-b_ISje5B3UWb7Apw?pw…...

Git 用法总结

换到新项目组后&#xff0c;没有好好使用git 。有点疲劳了。 不过还是建议能提尽提。少提 多提。与己方便。与人方便 1&#xff0c;拉取最新分支后。先不要直接改代码&#xff0c;可以根据修改需求。创建本地分支 git checkout -b feature/wlan 。 然后你改代码。改了后。合…...

付费专栏·Python潮流周刊电子书合集(epub、pdf、markdown)下载

付费专栏 Python 潮流周刊目前年费 148&#xff0c;全年约 50 期。 这里分享的是前 60 期的精美电子书&#xff0c;包含有多种不同版本&#xff08;epub、pdf 和 markdown&#xff09;&#xff0c;免费下载&#xff08;下载方式见文末&#xff09;。 展示 pdf 版本的部分精美…...

o.redisson.client.handler.CommandsQueue : Exception occured. Channel

1&#xff0c; 版本 <dependency><groupId>org.redisson</groupId><artifactId>redisson</artifactId><version>2.15.2</version> </dependency>2&#xff0c;问题 2025-05-12 10:46:47.436 ERROR 27780 --- [sson-netty-5-…...

养生:拥抱健康生活的全方位指南

养生是一种综合性的健康管理方式&#xff0c;旨在通过多种方法颐养生命、增强体质、预防疾病&#xff0c;以实现延年益寿的目标1。以下为你详细介绍养生的各个方面&#xff1a; 心态养生&#xff1a;塑造健康心灵的基石 保持积极心态&#xff1a;积极的心态能提升生活质量&am…...

CSS3 伪元素(Pseudo-elements)大全

CSS3 伪元素&#xff08;Pseudo-elements&#xff09;大全 CSS3 伪元素用于选择元素的特定部分&#xff0c;以双冒号 :: 开头&#xff08;CSS3 规范推荐写法&#xff0c;但单冒号 : 也支持以保持向后兼容&#xff09;。 主要 CSS3 伪元素列表 ::before 在元素内容前插入生成的…...

养生:开启健康生活的全新篇章

养生是一场关乎生活品质与身心健康的持续修行&#xff0c;从饮食调养到运动锻炼&#xff0c;从睡眠管理到心态塑造&#xff0c;每个环节都对健康有着深远影响。以下为你提供全面且实用的养生指南。 饮食养生&#xff1a;科学膳食&#xff0c;滋养生命 合理的饮食是养生的根基…...

解读RTOS:第一篇 · RTOS 基础与选型指南

1. 引言 在嵌入式系统开发中,随着产品功能的不断丰富和系统复杂度的急剧上升,裸机循环往复的 main() 与中断驱动模式已难以满足项目的实时响应、任务隔离与资源管理需求。RTOS(实时操作系统)因其对任务管理、调度和通信机制的内建支持,成为越来越多嵌入式产品的首选。本文…...

基于Vue3.0的高德地图api教程005:实现绘制线并编辑功能

文章目录 6、绘制多段线6.1 绘制多段线6.1.1 开启绘制功能6.1.2 双击完成绘制6.1.3 保存到数据库6.2 修改多段线6.2.1 点击线,进入编辑模式6.2.2 编辑线6.3 完整代码6、绘制多段线 6.1 绘制多段线 6.1.1 开启绘制功能 实现代码: const changeSwitchDrawPolyline = ()=>…...

C++ asio网络编程(5)简单异步echo服务器

上一篇文章:C asio网络编程(4)异步读写操作及注意事项 文章目录 前言一、Session类1.代码2.代码详解3.实现Session类1.构造函数2.handle_read3.介绍一下boost的封装函数和api4.handle_write 二、Server类1.代码2.代码思路详解 三、客户端四、运行截图与流程图 前言 提示&…...

VBA会被Python代替吗

VBA不会完全被Python取代、但Python在自动化、数据分析与跨平台开发等方面的优势使其越来越受欢迎、两者将长期并存且各具优势。 Python以其易于学习的语法、强大的开源生态系统和跨平台支持&#xff0c;逐渐成为自动化和数据分析领域的主流工具。然而&#xff0c;VBA依旧在Exc…...

在Web应用中集成Google AI NLP服务的完整指南:从Dialogflow配置到高并发优化

在当今数字化客服领域,自然语言处理(NLP)技术已成为提升用户体验的关键。Google AI提供了一系列强大的NLP服务,特别是Dialogflow,能够帮助开发者构建智能对话系统。本文将详细介绍如何在Web应用中集成这些服务,解决从模型训练到高并发处理的全套技术挑战。 一、Dialogflow…...

Linux服务器连接SSH工具FinalShell安装使用支持Linux文件上传下载

前言 记录连接Linux服务器SSH工具FinalShell&#xff0c;支持可视化上传下载及查看服务器负载状态 安装使用 安装地址 官网下载:https://finalshell-ssh.com/ 通过网盘分享的文件&#xff1a;shell 链接: https://pan.baidu.com/s/1ZFcD_Js-r_lE3IV8wuuA5A?pwde72f 提取码:…...

【Java ee初阶】IP协议

网络层 IP 协议 1) 地址管理 针对网络上的各种设备&#xff0c;所在的位置&#xff0c;进行描述和区分 > IP 地址 2) 路由选择 网络结构非常复杂 挑选出合适的路径 IP 协议的报文结构 ipv4 ipv6 其他版本没有大规模推广使用~~ IP 协议中&#xff0c;报头也是变长的&a…...

WSL-Ubuntu 中安装 Git LFS 记录

#记录工作 一、问题背景 在 Windows Subsystem for Linux&#xff08;WSL&#xff09;的 Ubuntu 环境下进行开发时&#xff0c;当我们需要管理 Git 仓库中的大文件&#xff0c;使用 Git LFS&#xff08;Large File Storage&#xff09;是一个很好的解决方案。但在执行git lfs…...

Ubuntu源码版comfyui的安装

Comfyui也出桌面版了&#xff0c;但是想让大家多个人都使用怎么办呢&#xff1f;也有方法&#xff0c;安装Linux版&#xff0c;启动后会生成个网页地址&#xff0c;打开就能用了。 1、先来看下本地安装环境配置&#xff1a; 系统&#xff1a;Ubuntu 22.04 内存&#xff1a;2…...

Clang实现C++文件分析,含Python实战

最近的项目&#xff0c;需要获取到C代码中的Git修改过的函数信息&#xff0c;决定通过抽象语法树AST的方式&#xff0c;分析出文件内容后&#xff0c;通过匹配git diff修改的行号信息得知是什么函数。了解到Clang 能够进行C、C代码的分析&#xff0c;记录一下。 一、Clang AST…...

MFC listctrl修改背景颜色

在 MFC 中修改 ListCtrl 控件的行背景颜色&#xff0c;需要通过自绘&#xff08;Owner-Draw&#xff09;机制实现。以下是详细的实现方法&#xff1a; 方法一&#xff1a;通过自绘&#xff08;Owner-Draw&#xff09;实现 步骤 1&#xff1a;启用自绘属性 在对话框设计器中选…...

[Git]ssh模式每次提交都要输入密码

问题描述 连接用的ssh&#xff0c;不是https。每次git提交都要输入密码&#xff0c;很麻烦。 原因分析 ssh模式需要在git服务端保存密钥&#xff0c;不然每次都会校验用户的身份。 解决方案 1.生成密钥 进到用户路径下 C:\Users\szx\, 打开bash 生成密钥&#xff1a; s…...

请解释 React Native 的新架构(Fabric 和 TurboModules)与旧架构的主要区别

React Native 的新架构&#xff08;Fabric 和 TurboModules&#xff09;是对旧架构的重大革新&#xff0c;主要解决了旧架构在性能、线程模型和原生互操作性等方面的瓶颈。以下是新旧架构的核心区别&#xff1a; 1. 线程模型与异步通信 旧架构&#xff1a; 三层线程模型&…...

大小端的判断方法

大小端&#xff08;Endianness&#xff09; 是计算机存储多字节数据&#xff08;如整数、浮点数&#xff09;时的两种不同方式&#xff0c;决定了字节在内存中的排列顺序。 1. 大端&#xff08;Big-Endian&#xff09; 高位字节存储在低地址&#xff0c;低位字节存储在高地址。…...

技术视界 | 青龙机器人训练地形详解(四):复杂地形精讲之斜坡

在前几篇文章中&#xff0c;我们依次讲解了如何创建一个地形、如何将地形添加到训练环境中&#xff0c;并在上一期深入分析了复杂地形之一——台阶地形的创建方式与训练意义。本文将继续聚焦复杂地形训练中另一类代表性地形——斜坡&#xff08;Slope&#xff09;与金字塔斜坡&…...

典籍知识问答重新生成和消息修改Bug修改

1.Bug&#xff1a; {messageId: "temp-user-1747051925999",…} messageId : "temp-user-1747051925999" newContent : "关于选中的内容&#xff1a;\"The ancient people lived long by following natural laws\"&#xff0c;我的问题是&…...

交易所开发-如何开发一个交易所

交易所开发全流程指南&#xff1a;从架构设计到合规落地 ——2025年数字资产交易平台的构建逻辑与技术实践 一、开发核心流程&#xff1a;五阶段方法论 1. 需求定位与合规先行 市场细分&#xff1a;明确交易所类型&#xff08;CEX、DEX或混合型&#xff09;&#xff0c;选择目…...

工具篇-如何在Github Copilot中使用MCP服务?

Model Context Protocol (MCP) 是由 Anthropic 公司于 2024 年 11 月推出的一种开放协议标准&#xff0c;目的在于标准化 LLM 与外部数据源、工具及服务之间的交互方式。 MCP 被广泛类比为 “AI 领域的 USB-C 接口 ”。 一、vscode的安装 下载vscode Visual Studio …...

MATLAB机器人系统工具箱中的loadrobot和importrobot

loadrobot和importrobot是 MATLAB 机器人系统工具箱中用于创建机器人模型的两个核心函数&#xff0c;它们的主要区别可以从以下几个方面来理解&#xff1a; 1. 模型来源 loadrobot 直接加载工具箱预定义的机器人模型&#xff08;如 UR5e、Panda、Kinova 等&#xff09;。这些模…...

django之视图

django vs drf 首先要区分django 和 django rest framework(drf)。 django是前后端不分离的&#xff0c;后端写模板&#xff08;template&#xff09;渲染成html之后返回给浏览器。 drf是适应前后端分离的架构&#xff0c;基于django做的封装&#xff0c;提供的rest API规范…...

深入探讨dubbo组件的实践

目录 1、dubbo概述 1.1、介绍 1.2、RPC 1.3、区别 1.4、优点 2、dubbo分层 2.1、层级分类 1. Service 服务层&#xff08;业务层&#xff09; 2. Config 配置层 3. Proxy 服务代理层 4. Registry 注册中心层 5. Cluster 集群容错层 6. Monitor 监控层 7. Protoco…...

2.1 微积分基本想法

总结性表达 微积分的核心思想在于用简单图形逼近复杂形状的面积。牛顿与莱布尼茨通过"以直代曲"的突破性思路&#xff0c;将曲线围成的面积分解为无限个矩形之和&#xff0c;形成两大核心工具&#xff1a; 极限思想&#xff1a;通过无限细分矩形底边&#xff08;Δ…...

学习threejs,使用Physijs物理引擎,加载各种几何体网格对象

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;threejs gis工程师 文章目录 一、&#x1f340;前言1.1 ☘️Physijs 物理引擎1.1.1 ☘️…...