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

Python Web 框架 Django、Flask 和 FastAPI 对比

在探索 Python Web 框架时,Django、Flask 和 FastAPI 无疑是最常被提及的名字。根据我们最新的 Python 开发者调查,这三大框架继续稳坐后端 Web 开发的热门宝座。它们均为开源项目,并且与 Python 的最新版本无缝兼容。然而,面对不同的项目需求,如何选择最合适的框架呢?本文将深入剖析每个框架的特点、优势与不足,并通过对比帮助您做出明智决策。

Django:功能完备的全栈选择

Django 是一个“自带电池”的全栈 Web 框架,广受 Instagram、Spotify 和 Dropbox 等知名企业的青睐。它被誉为“为追求完美与效率的开发者量身打造”,旨在简化 Web 应用的开发流程,让构建健壮应用变得更高效。Django 于 2005 年首次亮相,作为开源项目已有 20 年历史,如今依然成熟且开发活跃。它广泛适用于社交媒体、电商、新闻和娱乐等各类 Web 应用。

Django 采用模型-视图-模板 (MVT) 架构,清晰划分了组件职责:模型管理数据结构,视图处理业务逻辑并与模型交互,模板则负责将数据呈现给用户,类似于常见的模型-视图-控制器 (MVC) 模式。作为全栈框架,Django 能独立完成从数据库到前端界面的开发。此外,结合 Django REST Framework,您还可以将其与 React 等前端框架搭配,打造移动端或浏览器应用。想深入学习?我们的 Django 综合指南涵盖基础知识、学习路线和实用资源,助您快速上手。

Django 的优势

Django 之所以长盛不衰,原因包括:

  • 功能齐全:内置认证、缓存、数据校验和会话管理等功能,遵循“避免重复” (DRY) 原则,加速开发并减少错误。
  • 易于上手:依赖管理简便,内置工具减少了对外部库的依赖,降低了兼容性风险,让您迅速进入开发状态。
  • 数据库支持:通过对象关系映射 (ORM),支持 SQLite、MySQL 和 PostgreSQL 等数据库,无需深入 SQL 也能操作数据,但对非关系型数据库(如 MongoDB)的支持较弱。
  • 安全性:内置防护机制有效应对 XSS、SQL 注入和点击劫持等威胁,确保应用安全无忧。
  • 可扩展性:虽然是单体框架,但支持水平扩展、缓存优化和异步处理,足以应对高负载需求。
  • 社区资源:庞大的社区和详尽的文档提供丰富的教程与支持。
Django 的不足

尽管优势明显,Django 并非通杀:

  • 过于庞大:对小型项目而言,功能全面反而显得冗余,轻量级框架如 Flask 可能更合适。
  • 学习门槛:丰富的功能带来一定的学习曲线,但大量资源可助新手入门。
  • 性能表现:相较于 Flask 和 FastAPI,Django 速度稍逊,不过缓存和异步支持可弥补差距。

Flask:灵活轻盈的微框架

Flask 是一个基于 Python 的微框架,适用于后端 Web 开发。别被“微”字迷惑,它并不仅限于小型项目。Flask 依托 Werkzeug WSGI 和 Jinja2 模板引擎,核心设计简洁明了,被 Netflix、Airbnb 和 Reddit 等公司广泛采用。Flask 诞生于 2010 年,最初是一个愚人节玩笑,如今已成为成熟的开源框架。

与 Django 的“全包”风格不同,Flask 追求极简,开发者可自由选择组件。它不内置数据库、ORM 或 ODM,给予用户更大的自主权。这种设计在带来灵活性的同时,也为开发过程增添了独特价值。

Flask 的优势

根据我们开发者生态调查,Flask 使用率近五年稳步上升,并在 2021 年首次超越 Django。其亮点包括:

  • 轻量设计:简洁的核心适合小型项目或无需复杂功能的场景,同时也能通过扩展支持大型应用。
  • 高度灵活:允许开发者为数据处理、认证等功能挑选最优工具,满足个性化需求。
  • 扩展性强:模块化设计便于水平扩展,搭配 NoSQL 数据库更能提升性能。
  • 易学易用:简单直观的核心逻辑降低入门难度,但复杂应用需依赖更多扩展。
  • 社区支持:文档详实(略偏技术化),社区虽不及 Django 庞大,但活跃且持续成长。
Flask 的不足

灵活性虽好,但也带来挑战:

  • 自建功能:微框架特性意味着认证、会话管理等需自行实现,可能减缓开发速度并增加依赖管理负担。
  • 安全性有限:仅默认保护客户端 Cookie,其余安全措施需手动配置,并需关注依赖库的漏洞。
  • 性能表现:略优于 Django,但不及 FastAPI。尽管支持部分 ASGI,其根基仍偏向 WSGI。

FastAPI:高性能的现代之选

FastAPI 是一个专注于构建高性能 Web API 的微框架,2018 年首次开源发布。虽然历史较短,但凭借出色表现迅速跻身热门框架前三(2021 年起持续位列第三)。它基于 ASGI 服务器 Uvicorn 和 Starlette 微框架,集成了数据校验、序列化和自动文档生成,简化了 API 开发。

FastAPI 的设计汲取了众多框架的经验教训,适配了前端框架(如 React、Vue.js)流行的时代。它充分利用 OpenAPI 标准,提供现代化的 API 开发体验。除了 RESTful API,FastAPI 还特别适合需要实时响应的应用,如消息平台或数据仪表盘。其异步能力和高性能也使其在机器学习和数据密集型场景中大放异彩。

FastAPI 的优势

调查显示,FastAPI 使用率从 2021 年的 14% 升至 20%,逐渐蚕食 Flask 和 Django 的份额。其吸引力在于:

  • 极致性能:异步支持和 WebSocket 功能使其在基准测试中碾压 Django 和 Flask,适合高流量场景。
  • 模块化扩展:轻量设计易于扩展,非常适合容器化部署。
  • 标准兼容:支持 OAuth 2.0、OpenAPI 和 JSON Schema,开箱即用即可生成安全认证和 API 文档。
  • 开发友好:借助 Pydantic 的类型提示和校验,提供自动补全和错误检测,提速开发流程。
  • 文档丰富:官方文档详尽,第三方资源也在快速增长。
FastAPI 的不足

新星虽耀眼,仍有短板:

  • 成熟度不足:相比 Django 和 Flask,FastAPI 的历史较短,社区规模和稳定性有待提升。
  • 功能有限:作为微框架,需额外扩展才能实现完整应用,兼容库数量也较少。

如何选择合适的框架?

Django、Flask 和 FastAPI,究竟哪一个才是“最佳”?答案取决于您的具体需求。以下问题或许能帮您厘清思路:

  • 您要开发什么类型的应用?
  • 您的核心诉求是什么(速度、功能还是灵活性)?
  • 项目未来会如何演变?

如果您需要快速构建功能齐全的标准 Web 应用,Django 是可靠之选,尤其在搭配关系数据库时表现突出。但对于轻量项目,它可能显得“用力过猛”。Flask 则以灵活性取胜,适合需要自定义功能的场景,如初创项目或 MVP。FastAPI 则在性能至上的 API 或数据驱动应用中独领风骚,尽管功能集成度稍逊。


三大框架横向对比

特性DjangoFlaskFastAPI
设计理念全栈框架,专为关系数据库应用打造轻量微框架,强调灵活性高性能微框架,聚焦 Web API
易用性功能完备,开箱即用,但学习曲线陡峭简单易学,需自行搭配工具类型提示加快开发,兼容性稍逊
性能中等,异步优化可提升略优于 Django,但不如 FastAPI最快,支持异步和 WebSocket
可扩展性单体设计,扩展需优化模块化,扩展灵活模块化,适合容器化部署
安全性内置多重防护基础保护,需额外配置支持 OAuth 2.0,需补充防护
成熟度2005 年起,久经考验2010 年起,稳步发展2018 年起,新兴崛起
社区庞大且活跃中等规模,持续增长较小但发展迅速
文档丰富且完善详实且技术性强全面但相对较新

相关文章:

Python Web 框架 Django、Flask 和 FastAPI 对比

在探索 Python Web 框架时,Django、Flask 和 FastAPI 无疑是最常被提及的名字。根据我们最新的 Python 开发者调查,这三大框架继续稳坐后端 Web 开发的热门宝座。它们均为开源项目,并且与 Python 的最新版本无缝兼容。然而,面对不…...

TISAX认证注意事项的详细介绍

TISAX(Trusted Information Security Assessment Exchange)认证的注意事项犹如企业在信息安全领域航行时必须遵循的灯塔指引,至关重要且不容忽视。以下是对TISAX认证注意事项的详尽阐述: 首先,企业需深入研读并理解TI…...

JavaScript |(六)DOM事件 | 尚硅谷JavaScript基础实战

学习来源:尚硅谷JavaScript基础&实战丨JS入门到精通全套完整版 笔记来源:在这位大佬的基础上添加了一些东西,欢迎大家支持原创,大佬太棒了:JavaScript |(六)DOM事件 | 尚硅谷JavaScript基础…...

【动态规划】详解混合背包问题

目录 1. 前置文章2. 题目3. 小结 1. 前置文章 本文前置文章: 【动态规划】详解 0-1背包问题【动态规划】详解完全背包问题【动态规划】详解分组背包问题【动态规划】详解多重背包问题 下面是三种背包模式的区别: 0 - 1 背包 是说:有 n 个…...

Nodejs 项目打包部署方式

方式一:PM2 一、准备工作 确保服务器上已安装 Node.js 环境建议使用 PM2 进行进程管理(需要额外安装) 二、部署步骤 1.首先在服务器上安装 PM2(推荐): npm install -g pm22.将项目代码上传到服务器&…...

银河麒麟操作系统的上下游版本判断

以下内容摘自《银河麒麟操作系统进阶应用》一书。 几百款Linux发行版之间并不是完全独立的,绝大多数Linux发行版可以追溯到几个关键的“祖先”发行版,其中最为人熟知的包括Debian、Fedora、Slackware和Arch Linux。这些“祖先”发行版又称“原始”发行版…...

Retrofit中scalars转换html为字符串

简介 在Retrofit中,如果你想直接获取HTML或其他文本格式的响应内容而不是将其映射到一个模型类,ScalarsConverterFactory 就派上用场了。ScalarsConverterFactory 是一个转换器工厂,它能够将响应体转换为Java基本类型如String、Integer或Byte…...

Java基础面试题学习

转换成自已的语言来回答,来源小林coding、沉默王二以及其它资源和自已改编。 1、概念 1、说一下Java的特点 我认为Java有很多特点 首先是平台无关性:Java可以实现一次编译到处运行,因为Java的编译器将源代码编译成字节码,使得该…...

# [RPA] 使用八爪鱼进行高效网页数据采集

在许多行业中,数据是核心资产。然而,虽然许多网站的文本内容可以免费访问,但手动一条一条采集,不仅耗时耗力,还容易出错。这种情况下,使用自动化工具来提高采集效率就显得尤为重要。本文将介绍 八爪鱼 这一…...

【工具变量】全国地级市地方ZF债务数据集(2014-2023年)

地方ZF债务是地方财政运作的重要组成部分,主要用于基础设施建设、公共服务及经济发展,是衡量地方财政健康状况的重要指标。近年来,我国地级市的地方ZF债务规模不断变化,涉及一般债务和专项债务等多个方面,对金融市场、…...

6.5840 Lab 3: Raft

论文很重要 raft-zh_cn/raft-zh_cn.md at master maemual/raft-zh_cn GitHub Part 3A: leader election (moderate) 十次test都过了 实现 Raft 的领导者选举和心跳机制(AppendEntries RPC,无日志条目)。第 3A 部分的目标是实现以下功能&am…...

DCDC36V同步降压 输出可调 2A电流恒压芯片SL1588H 替换LV3842

在当今电子设备飞速发展的时代,电源管理芯片的性能优劣直接关乎设备的稳定性与高效运行。对于诸多需要将 36V 电压进行同步降压、输出电压可调且稳定输出 2A 电流的应用场景,一款卓越的恒压芯片不可或缺。SL1588H 正凭借其领先的技术和出色的性能&#x…...

AH4953A双PMOS管深度解析:无线充系统的“高效开关”设计实践

AH4953 30v5A双PMOS管深度解析:无线充系统的“高效开关”设计实践 1. 产品定位与基础特性 AH4953A双通道P沟道MOSFET,专为无线充电、电源管理等高频开关场景优化。其核心优势体现在: • 高耐压低损耗:30V漏源电压(Vd…...

图数据库Neo4j和JDK安装与配置教程(超详细)

目录 前言 一、Java环境配置 (一)JDK的下载与安装 (二)JDK环境配置 (三)检测JDK17是否配置成功 二、Neo4j的安装与配置 (一)Neo4j的下载与安装 (二)N…...

现代美学工业风品牌海报徽标设计PSAI无衬线英文字体安装包 Moldin – Condensed Sans Serif Font

现代几何工业风品牌海报徽标设计无衬线英文字体安装包 Moldin — Condensed Sans Serif Font Moldin 是一个粗体浓缩的无衬线字体系列,旨在为显示和标题提供最大的影响。Moldin 有 6 种粗细可供选择,从常规到黑色,提供静态和可变格式&#x…...

Excel(函数进阶篇):FILTER函数全解读、XLOOKUP函数全解读、UNIQUE函数、数组与数组公式

目录 数组与数组函数office365中VLOOKUP函数的加强数组中的多条件判断FILTER函数详解用法概述函数语法 基础筛选多条件筛选进阶技巧结合动态数组 高级函数整合错误处理注意事项FILTER经典问题:一对多查询 XLOOKUP函数XLOOKUP基础用法XLOOKUP函数多条件匹配和双向查询…...

django入门教程之request和reponse【二】

接上节:入门【一】 再创建一个orders子应用,python manager.py startapp orders,orders目录中新建一个urls.py文件。结构如图: 通过上节课,我们知道在views.py文件中编写函数时,有一个默认入参request&…...

第十五次CCF-CSP认证(含C++源码)

第十五次CCF-CSP认证 小明上学满分思路 数据中心满分思路 小明放学满分题解 小明上学 题目链接 满分思路 其实题目看着长,但是做起来是非常好写的,其实主要原因在于,他的红绿灯的变化规律是一定的,而且小明路上的每次红绿灯情况…...

Excel处理控件Spire.XLS系列教程:C# 在 Excel 中添加或删除单元格边框

单元格边框是指在单元格或单元格区域周围添加的线条。它们可用于不同的目的,如分隔工作表中的部分、吸引读者注意重要的单元格或使工作表看起来更美观。本文将介绍如何使用 Spire.XLS for .NET 在 C# 中添加或删除 Excel 单元格边框。 安装 Spire.XLS for .NET E-…...

混合精度-基于torch内部

定义 混合精度训练是一种在深度学习模型训练过程中,同时使用不同精度数据类型(主要是单精度 FP32 和半精度 FP16)来进行计算和存储的技术。以下是具体介绍: 数据类型: 单精度(FP32)&#xff1…...

Ubuntu16.04网卡ens33找不到异常修复

重启网络 systemctl stop NetworkManager systemctl restart networking允许网络可用 连接网络 验证网络...

C++编译流程

编译器其实就是一个翻译器,把我们的文件内容翻译成机器能够看懂的指令,但如何合理翻译是核心。 C语言编译 需要经过以下几步: 词法分析:扫描代码,确定单词类型,比如是变量还是函数,是标识符还…...

人工智能:企业RAG方案

一、LangChain FAISS、Milvus / Weaviate介绍 在企业 RAG (Retrieval-Augmented Generation)方案中,LangChain FAISS 和 Milvus / Weaviate 都是用于向量检索(Vector Search)的核心工具。两者的核心区别在于 存储方…...

【Git流程最佳实践】 开发较大功能时应使用project branch

目录 背景和失败经验名词定义曾经使用project branch犯的错 建立project branch的必要性正确的使用project branch的方法 背景和失败经验 我们曾经使用过project branch,但是后来放弃了 名词定义 特性branch(特性分支): 在开发跨越新特性的时候会从主…...

线程的概念

目录 线程的概念 创建线程快速验证 物理内存管理 再谈页表 今天我们学习线程的概念 线程的概念 进程是一个指向起来的程序,进程内核数据结构代码和数据,线程称为指向流,执行粒度比进程要更细,是进程内部的一个执行分支&…...

firefly经典蓝牙和QProcess、QFileSystemWatcher记录

QProcess 默认不会启动一个 shell 来解析命令,而是直接调用操作系统的系统调用来启动外部程序。也就是通过fork一个子线程或者exec一个子进程来执行命令。 QProcess的参数模式 QProcess 需要明确指定命令的可执行文件路径或参数列表。 如果命令是一个可执行文件的路径…...

北斗设备启动流程与时长解析

北斗卫星导航系统作为我国自主研发的全球卫星导航系统,广泛应用于交通、通信、农业等多个领域。今天,我们就来详细探讨一下北斗设备的启动流程以及不同启动方式下的时长。 一、北斗设备的启动流程 北斗设备的启动流程可以分为以下几个关键步骤&#xf…...

PyTorch分布式训练中各节点如何通信

深度学习 文章目录 深度学习前言pytorch如何初始化分布式训练怎么知道要使用哪几台机器进行训练的如何根据标识进行初始化(init_method)如何获取进程的唯一标识rank如何实现数据如何分发 前言 同学们在处理分布式训练时经常会遇到以下几个疑问&#xff…...

又双叒叕Scrapy爬虫相关的面试题及详细解答

Scrapy是Python开发的一个快速、高层次的网络爬虫框架,专注于高效抓取网页并提取结构化数据。其核心设计基于异步处理机制,适合大规模数据采集任务。 文章目录 基础概念1. Scrapy框架的核心组件有哪些?架构与流程2. 描述Scrapy的工作流程核心组件详解3. 如何自定义Item Pipe…...

Docker与K8S是什么该怎么选?

用了很久的容器化,最近突然看到一个问题问: docker和K8S究竟有什么区别,到底该怎么选?我认真思考了一会,发现一时间还真说不明白,于是就研究了一段时间发布今天的博文! Docker vs Kubernetes&a…...

FPGA中串行执行方式之计数器控制

FPGA中串行执行方式之计数器控制 使用计数器控制的方式实现状态机是一种简单且直观的方法。它通过计数器的值来控制状态的变化,从而实现顺序逻辑。计数器的方式特别适合状态较少且状态转移是固定的场景。 基本原理 计数器控制的状态机 ​例程1:简单的顺序状态机 以下是一个…...

尝试使用tauri2+Django+React的项目

前言 使用Tauri2前端,本质是进程间的通信。并非前后端。 而想使用nw,先后端打包exe,再和前端打包成exe,并没有完成成功。 而笔者从Tauri中看到这种可能性。很有可能成功基于SeaORMMySQLTauri2ViteReact等的CRUD交互项目-CSDN博…...

用@keyframes-animation来实现动画效果

一、使用规则 keyframes 用于定义动画的关键帧。 animation属性 用于将keyframes动画用于元素上。 二、基本语法 keyframes keyframes xuanZhuan { /*xuanZhuan是动画名字,实现旋转*/0%{transform: rotate(0deg);}50%{transform: rotate(180deg);}100%{transform: rotate(…...

kernel中外部传递参数使用方法

在 Linux 内核模块开发中,module_param(rpc_tdebug, uint, 0600); 表示定义一个可通过外部传递参数进行配置的模块级变量,具体解析如下: ‌参数名称‌ rpc_tdebug 是模块参数的变量名,该变量需在代码中提前声明为静态全局变量&…...

AI赋能流域生态评估:从多源数据融合到服务价值预测的技术突破

流域生态系统服务评价是生态学与地理信息科学的交叉前沿,传统方法受限于数据碎片化与模型解释力不足。本文以‌随机森林-时空图卷积联合模型(RF-STGCN)‌为核心,结合2022年长江中游实际监测数据,详解AI技术在服务评价中…...

SZU软件工程大学生涯 2022~2026

用于个人面试前自我介绍,防止忘记或谈吐不流利。 面试官您好,我是来自深圳大学计算机与软件学院的软件工程专业的王雅贤。在校期间,我修读了程序设计基础、面向对象程序设计、数据结构、算法分析与设计、操作系统等核心课程,系统…...

如何设计一个合理的库存系统

库存管理系统是电商、供应链管理、仓储管理等核心系统之一。一个合理的库存系统需要同时满足高并发、数据一致性、实时性、扩展性等要求,以确保在各种业务场景下都能稳定运行。 本文将探讨如何设计一个合理的库存系统,包括库存模型设计、数据一致性策略…...

数据人的进阶之路:四年数仓实践与成长思考

前言 在数据仓库开发的过程中,常常会遇到很多值得思考的问题,它们不仅关乎技术的深度,也涉及业务理解、个人的成长,甚至是数据行业未来的价值。回顾过去的经历,有很多问题反复出现,甚至成为绕不开的课题&am…...

数据库原理及应用mysql版陈业斌实验一

🏝️专栏:Mysql_猫咪-9527的博客-CSDN博客 🌅主页:猫咪-9527-CSDN博客 “欲穷千里目,更上一层楼。会当凌绝顶,一览众山小。” 目录 实验一:数据库与数据表的定义和数据操作 1.实验数据如下 …...

Linux环境变量:深入解析与实用指南

目录 一、环境变量概述 二、环境变量的作用 三、环境变量的类型 3.1系统环境变量 3.2用户环境变量 四、环境变量的操作 4.1查看环境变量 4.2设置环境变量 4.3删除环境变量 五、环境变量的配置文件 六、环境变量的最佳实践 七、总结 环境变量是Linux系统中至关重要的…...

大数据 Spark 技术简介

Apache Spark 是一种快速、通用、可扩展的大数据处理引擎,最初由加州大学伯克利分校开发。它提供了一种高效的数据处理框架,可以处理大规模数据集,并在分布式计算集群上进行并行处理。 Apache Spark 的基本概念包括以下几个要点:…...

Go语言的基础类型

一基础数据类型 一、布尔型(Bool) 定义:表示逻辑真 / 假,仅有两个值:true 和 false内存占用:1 字节使用场景:条件判断、逻辑运算 二、数值型(Numeric) 1. 整数类型&…...

面试复习-基础网络+运维知识

一、TCP/IP模型及每层对应通信协议 1.1第一层-应用层 作用:服务及应用程序 HTTP --- 超文本传输协议--- 获取网页信息---80(TCP 80) HTTPS --- HTTP SSL(安全传输协议)/TLS ---443(TCP 443) …...

大屏设计新纪元:定制视觉盛宴

当城市天际线的巨型LED幕墙与元宇宙中的虚拟场景无缝交织,当博物馆的数字藏品在8K曲面屏上焕发新生,一个属于大屏设计的全新纪元已悄然降临。这场视觉革命不仅重构了信息传播的维度,更将“定制化体验”推向了前所未有的高度——每一寸屏幕都成…...

JavaIO流的使用和修饰器模式(直击心灵版)

系列文章目录 JavaIO流的使用和修饰器模式 文章目录 系列文章目录前言一、字节流: 1.FileInputStream(读取文件)2.FileOutputStream(写入文件) 二、字符流: 1..基础字符流:2.处理流:3.对象处理流:4.转换流: 三、修饰器…...

10-STL、位运算、常用函数库

1-STL vector vector是变长数组 //定义vector vector<int>a;//第一维长233&#xff0c;第二维长度动态变化 vector<int>b[233];//自定义的结构体类型也可以保存在vector中 struct res{...}; vector<rec>c;//函数 a.size();//返回vector的实际长度&#xf…...

【Ratis】Ratis Streaming概览

看了Tsz-Wo Nicholas Sze博士的一个关于Ratis的share,在share里提到了raits做的一个性能优化:客户端流。比较感兴趣,特此记录一下。如果想看原始分享的,可以搜关键词:Apache Ratis - A High Performance Raft Library 关于Ratis Stream的pdf介绍,在这个PR的附件里: [Ra…...

Python Seaborn面试题及参考答案

目录 如何用 stripplot () 绘制带随机偏移的分类散点图?如何控制 jitter 参数? swarmplot () 如何避免散点重叠?适用场景与数据量限制是什么? 使用 catplot () 绘制箱线图时,如何通过 kind 参数切换图表类型? 如何通过 hue 参数在分类图中添加第三个维度(如性别)? …...

linux下基本命令和扩展命令(安装和登录命令、文件处理命令、系统管理相关命令、网络操作命令、系统安全相关命令、其他命令)欢迎补充噢

基本命令 ls: 列出目录内容 ls&#xff1a;列出当前目录内容ls -l&#xff1a;以长格式列出&#xff08;显示详细信息&#xff09;ls -a&#xff1a;显示隐藏文件ls -lh&#xff1a;以易读格式显示文件大小 pwd: 显示当前工作目录 pwd&#xff1a;显示当前目录的绝对路径 cd:…...

K8S学习之基础四十:K8S配置altermanager发送告警到钉钉群

配置altermanager发送告警到钉钉群 ​ 创建钉钉群&#xff0c;设置机器人助手(必须是管理员才能设置)&#xff0c;获取webhook webhook&#xff1a; https://oapi.dingtalk.com/robot/send?access_token25bed933a52d69f192347b5be4b2193bc0b257a6d9ae68d81619e3ae3d93f7c6…...