华为云Flexus+DeepSeek征文|SpringBoot开发实战:基于ModelArts Studio高效集成DeepSeek大模型服务
目录
一、前言
二、ModelArts Studio(MaaS)介绍与使用
2.1ModelArts Studio(MaaS)介绍
2.2 ModelArts Studio(MaaS)使用场景
2.3 开通MaaS服务
2.4 开通DeepSeek-V3商用服务
三、MaaS模型服务接口测试
3.1 获取API Key
3.2 获取模型列表接口:/v1/models
3.3 聊天对话型生成调用接口:/v1/chat/completions
3.4 面向传统文本补全接口:/v1/completions
四、Springboot整合MaaS模型服务接口
4.1 Springboot代码整合
4.2 测试验证
4.3 调用统计
五、总结
一、前言
华为云ModelArts Studio(MaaS)作为全托管的AI开发平台,为企业和开发者提供了便捷的大模型部署和应用能力。本文将详细介绍如何通过Spring Boot应用调用ModelArts Studio上部署的DeepSeek-V3模型服务,包括平台介绍、接口测试和代码整合等内容。
二、ModelArts Studio(MaaS)介绍与使用
2.1ModelArts Studio(MaaS)介绍
ModelArts Studio是华为云面向AI开发者的全托管服务平台,支持从数据处理、模型开发到部署上线的全生命周期管理。其ModelArts Studio产品架构如图:
总结其核心优势在于:
- 全托管服务:无需管理底层基础设施,专注于模型开发和应用
- 多模型支持:支持多种预训练大模型和自定义模型部署
- 弹性扩展:根据业务需求自动调整计算资源
- 安全可靠:提供多层次的安全防护机制
2.2 ModelArts Studio(MaaS)使用场景
华为MaaS服务提供了简单易用的模型开发工具链,支持大模型定制开发,让模型应用与业务系统无缝衔接,降低企业AI落地的成本与难度,能够在多种场景灵活使用。主要有如下场景:
- 智能客服:快速构建企业级智能客服系统
- 内容创作:辅助生成文章、故事、代码等内容
- 知识问答:构建企业知识库问答系统
- 数据分析:自动化数据分析和报告生成
- 多模态应用:结合图像、语音等多模态数据处理
2.3 开通MaaS服务
访问MaaS平台,点击MaaS控制台跳转华为云登录页面,登录或者注册华为账号即可。
2.4 开通DeepSeek-V3商用服务
登录成功之后自动跳转ModelArts Studio控制台,在模型推理-在线推理的商用服务找到DeepSeek-V3/R1模型,点击「开通服务」,即可体验对应模型服务。
根据个人需求可以开通DeepSeek-V3或者DeepSeek-R1模型。
开通成功之后,返回控制台就可以看到付费状态显示开通,并且在操作栏可以看到在线体验已高亮。
三、MaaS模型服务接口测试
开通完开通DeepSeek-V3/商用服务,接下来就可以进行模型服务接口调用。MaaS模型服务接口可以参考:调用ModelArts Studio(MaaS)部署的模型服务_AI开发平台ModelArts_华为云
点击调用说明,可以看到接口请求域名
即请求域名如下:https://api.modelarts-maas.com/,后续所有MaaS模型服务接口都是通过这个请求。MaaS模型服务接口包括下面三个:
- /v1/chat/completions
- /v1/models
- /v1/completions
注意:
- /v1/models使用GET方法不需要请求体,而/v1/chat/completions与/v1/completions均需要POST请求方式和对应的JSON请求体。
- 请求头为Authorization: Bearer YOUR_API_KEY,这里注意前面还有Bearer+空格
- 对于POST请求,还需包含Content-Type: application/json。
3.1 获取API Key
API Key是调用MaaS服务的身份凭证,每个API Key对应唯一的用户和服务权限,在ModelArts Studio控制台-API Key管理进行创建生成。
这里需要注意的是API Key只会展示一次,所以生成完成之后需要复制保存起来。
3.2 获取模型列表接口:/v1/models
功能说明:
该接口用于获取当前用户可用的模型列表,无需请求体,仅需通过请求头传入认证信息。
3.3 聊天对话型生成调用接口:/v1/chat/completions
该接口主要用于对话式交互场景,支持多轮对话和上下文理解,比如向模型提问:介绍一下你的功能?
请求参数如下:
{"model": "DeepSeek-V3","messages": [{"role": "user", "content": "介绍一下你的功能"}],"temperature": 0.7
}
请求响应结果如下:
3.4 面向传统文本补全接口:/v1/completions
这个接口主要是面向传统文本补全,即根据给定的prompt生成相应文本,让其讲一个大灰狼和小白兔的故事。请求参数如下:
{"model": "DeepSeek-V3","prompt": "讲一个大灰狼和小白兔的故事","max_tokens": 150,"temperature": 0.7
}
请求响应结果如下:
四、Springboot整合MaaS模型服务接口
MaaS模型服务接口测试完毕之后,接下来就可以在代码进行整合了,本次模拟开发一个AI交流工具,主要需求是在网页对话框,输入咨询问题,AI工具能够响应回调,并且后续可以结合自己业务进行改造。
4.1 Springboot代码整合
根据接口文档,编写接口请求MaaS模型聊天对话型生成调用接口/v1/chat/completions工具方法。
public String chat(String question) {// 修改 messages 部分,使用 JSONObject 数组而不是 String 数组JSONObject json = new JSONObject();json.put("model", "DeepSeek-V3");JSONArray messages = new JSONArray();JSONObject message = new JSONObject();message.put("role", "user");message.put("content", question);messages.add(message);json.put("messages", messages);json.put("temperature", 0.7);String response = HttpRequest.post("https://api.modelarts- maas.com/v1/chat/completions").body(json.toString()) // 设置请求体为JSON格式.header("Authorization", "Bearer " + apiToken).header("Content-Type", "application/json").timeout(20000) // 设置超时时间.execute().body();// 获取message内容JSONObject jsonObject = JSONObject.parseObject(response);JSONObject messageR = jsonObject.getJSONArray("choices").getJSONObject(0).getJSONObject("message");return messageR.getString("content");}
前端可以请求问题咨询,并将接收结果通知响应到前端页面中。
// 发送消息到后端接口function sendMessage() {const question = document.getElementById('questionInput').value.trim();if (!question) {alert('请输入问题!');return;}// 添加用户消息到聊天框addMessage(question, 'user');// 调用后端接口fetch('/maas/v1/chat', {method: 'POST',headers: {'Content-Type': 'application/json',},body: JSON.stringify({ question }), // 发送 JSON 数据}).then(response => response.json()).then(data => {// 添加机器人回复到聊天框var data = data.data;addMessage(data.response, 'bot');}).catch(error => {console.error('Error:', error);addMessage('请求失败,请稍后重试。', 'bot');});// 清空输入框document.getElementById('questionInput').value = '';}
4.2 测试验证
启动服务,在对话框中输入咨询问题,比如:介绍一下你的功能,可以看到自动将结果渲染到前端页面中。
4.3 调用统计
可以看到调用次数,token数,请求成功和失败数,已经响应时间。
五、总结
本次基于Spring Boot调用ModelArts Studio(MaaS)部署的DeepSeek-V3模型服务项目顺利完成。可以看到其优势显著,整合对接简单,成本低,适合AI小白,只需获取API Key进行HTTP请求即可快速上手,开发效率高且资源投入少,应用场景广泛,能满足多种业务需求。
然而,项目也存在不足,接口调用响应时间较长,平均响应时间达8851.25ms,影响用户体验。后续可针对此问题进行优化,如优化请求策略、设计批量处理机制等,以提升系统性能,更好地发挥该技术栈的应用价值。
大家可以去体验感受一下,欢迎评论区一起交流。
相关文章:
华为云Flexus+DeepSeek征文|SpringBoot开发实战:基于ModelArts Studio高效集成DeepSeek大模型服务
目录 一、前言 二、ModelArts Studio(MaaS)介绍与使用 2.1ModelArts Studio(MaaS)介绍 2.2 ModelArts Studio(MaaS)使用场景 2.3 开通MaaS服务 2.4 开通DeepSeek-V3商用服务 三、MaaS模型服务接口测试 3.1 …...
【C++】类与对象
C语言结构体中只能定义变量,在C中,结构体内不仅可以定义变量,也可以定义函数。比如:之前在数据结构中,用C语言方式实现的栈,结构体中只能定义变量;现在以C方式实现,会发现struct中也可以定义函数。 struct Stack {// 成员函数void Init(int defaultCapacity 4){a (int*)mall…...
mac M芯片运行docker-desktop异常问题
虽然mac已经迭代到m4了,但官方的docker-desktop运行仍然有问题,包括但不限于: 命令行docker找不到docker-desk打不开docker-desktop闪退容器起不来 尝试不同版本后,看到了其他可以在mac跑docker的开源方法,更简单、轻…...
5G 技术在智能制造中的应用:加速工业革命的新引擎
5G 技术在智能制造中的应用:加速工业革命的新引擎 在过去几十年里,制造业经历了从机械化到自动化,再到如今的智能化变革。而 5G 技术的出现,不仅是一次通信技术的升级,更是为 智能制造 注入了新的动力。从 智能工厂、工业物联网(IIoT) 到 远程控制与数据智能分析,5G 正…...
数据治理域——数据同步设计
摘要 本文主要介绍了数据同步的多种方式,包括直连同步、数据文件同步和数据库日志解析同步。每种方式都有其适用场景、技术特点、优缺点以及适用的数据类型和实时性要求。文章还详细探讨了数据直连同步的特点、工作原理、优点、缺点、适用场景等,并对数…...
系统架构设计师案例分析题——web篇
软考高项系统架构设计师,其中的科二案例分析题为5选3,总分75达到45分即合格。本贴来归纳web设计题目中常见的知识点即细节: 目录 一.核心知识 1.常见英文名词 2.私有云 3.面向对象三模型 4.计网相关——TCP和UDP的差异 5.MQTT和AMQP协…...
FC7300 SPI MCAL配置引导
一、MCU 组件 - 配置SPI时钟 MCU中配置的SPI输入时钟频率至少应大于2倍的SPI组件中配置的外设波特率。SPI时钟配置为30MHz 二、SPI 组件 - General Spi Level Delivered: 0 级:仅简单同步行为1 级:基本异步行为,通过中断实现2 级:增强型行为,通过轮询实现根据AUTOSAR SPI…...
【记录】Windows|竖屏怎么调整分辨率使横竖双屏互动鼠标丝滑
本文版本:Windows11,记录一下,我最后调整的比较舒适的分辨率是800*1280。 文章目录 第一步 回到桌面第二步 右键桌面第三步 设置横屏为主显示器第四步 调整分辨率使之符合你的需求第五步 勾选轻松在显示器之间移动光标第六步 拖动屏幕符合物理…...
hghac和hgproxy版本升级相关操作和注意事项
文章目录 环境文档用途详细信息 环境 系统平台:N/A 版本:4.5.6,4.5.7,4.5.8 文档用途 本文档用于高可用集群环境中hghac组件和hgproxy组件替换和升级操作 详细信息 1.关闭服务 所有数据节点都执行 1、关闭hgproxy服务 [roothgdb01 tools]# system…...
【超分辨率专题】一种考量视频编码比特率优化能力的超分辨率基准
这是一个Benchmark,超分辨率视频编码(2024) 专题介绍一、研究背景二、相关工作2.1 SR的发展2.2 SR benchmark的发展 三、Benchmark细节3.1 数据集制作3.2 模型选择3.3 编解码器和压缩标准选择3.4 Benchmark pipeline3.5 质量评估和主观评价研…...
操作系统之进程和线程听课笔记
计算机的上电运行就是构建进程树,进程调度就是在进程树节点进程进行切换 进程间通信的好处 经典模型 生产者和消费者 进程和线程的区别 线程引入带来的问题线程的优势 由于unix70年代产生,90年代有线程,当时数据库系统操作需要线程,操作系统没有来得及重造,出现了用户态线…...
Mac安装Navicat16
我的电脑用的是M3芯片,然后在安装的时候也踩了很多的坑 先分享一下链接 通过网盘分享的文件:Navicat Premium v16.2.dmg 链接: https://pan.baidu.com/s/1ENLtU7VLCvzntLKqSyFiqg?pwd1234 提取码: 1234 其实按理说用navicat17也是可以的 首先下载完成后…...
表的设计、聚合函数
目录 1、表的设计 1.1、一对一 1.2、一对多 1.3、多对多 2、插入查询结果 3、聚合查询 3.1、聚合函数 3.2、GROUP BY子句 1、表的设计 根据实际的需求场景,明确当前要创建几个表,每个表什么样子,这些表之间是否存在一定联系 1. 梳理…...
React学习———React Router
React Router React Router 是 React 应用中用于管理路由的流行库,它允许你在单页应用(SPA)中实现导航和页面切换而无需重新加载页面。 安装 npm install react-router-dom核心组件 <BrowserRouter> 使用HTML5的历史记录API&#…...
【前端】[vue3] [uni-app]使用 vantUI 框架
npm 安装: npm i vant/weapp -S --productionmain.js 中挂载 App.vue 引入 vantUI 样式 完成:...
upload-labs通关笔记-第8关 文件上传之点绕过
目录 一、点绕过原理 二、deldot()函数 三、源码分析 四、渗透实战 1、构建脚本test8.php 2、打开靶场 3、bp开启拦截 4、点击上传 5、bp拦截 6、后缀名增加点 7、发包并获取脚本地址 8、访问脚本 本文通过《upload-labs靶场通关笔记系列》来进行upload-labs靶场的渗…...
XML简要介绍
实际上现在的Java Web项目中更多的是基于springboot开发的,所以很少再使用xml去配置项目。所以我们的目的就是尽可能快速的去了解如何读懂和使用xml文件,对于DTD,XMLSchema这类约束的学习可以放松,主要是确保自己知道这里面的大致…...
我设计的一个安全的 web 系统用户密码管理流程
作为一名有多年经验的前端,在刚开始学习web后端的时候,就对如何设计一个安全的 web 系统用户密码管理流程有很多疑问。之前自己也实践过几种方法,但一直觉得不是十分安全。 我们知道,用户在注册或登录界面填写的密码是明文的&…...
事件驱动架构:从传统服务到实时响应的IT新风潮
文章目录 事件驱动架构的本质:从请求到事件的范式转变在EDA中: 事件驱动架构的演进:从消息队列到云原生标配核心技术:事件驱动架构的基石与工具链1. 消息队列:事件传递的枢纽2. 消费者:异步处理3. 事件总线…...
YOLOv11改进 | Neck篇 | 轻量化跨尺度跨通道融合颈部CCFM助力YOLOv11有效涨点
YOLOv11改进 | Neck篇 | 轻量化跨尺度跨通道融合颈部CCFM助力YOLOv11有效涨点 引言 在目标检测领域,YOLO系列算法因其卓越的速度-精度平衡而广受欢迎。YOLOv11作为该系列的最新演进版本,在Neck部分引入了创新的跨尺度跨通道融合模块(CCFM, Cross-scale…...
Unity:场景管理系统 —— SceneManagement 模块
目录 🎬 什么是 Scene(场景)? Unity 项目中的 Scene 通常负责什么? 🌍 一个 Scene 包含哪些元素? Scene 的切换与管理 📁 如何创建与管理 Scenes? 什么是Scene Man…...
官方 Elasticsearch SQL NLPChina Elasticsearch SQL
官方的可以在kibana 控制台上进行查询: POST /_sql { “query”: “SELECT client_ip, status FROM logs-2024-05 WHERE status 500” } NLPChina Elasticsearch SQL就无法以在kibana 控制台上进行查询,但是可以使用postman接口进行查询:...
Kubernetes 1.28 无 Docker 运行时环境下的容器化构建实践:Kaniko + Jenkins 全链路详解
背景说明 随着 Kubernetes 1.28 正式弃用 Docker 作为默认容器运行时(CRI 规范演进),传统的 docker build 方式已无法直接在集群内运行。Kaniko 作为 Google 开源的容器镜像构建工具,凭借其无需特权容器、兼容 OCI 标准的特性&am…...
【Linux】序列化与反序列化、会话与进程组、守护进程
一.序列化和反序列化 协议其实就是结构化的数据。但是再网络通信中,我们不直接发送结构化的数据给对方。我们一般会将结构化的数据序列化成字符串/字节流,然后通过网络在发送出去。而接收方收到之后,要对收到的字符串/流式数据进行反序列化&…...
Python机器学习笔记(二十五、算法链与管道)
对于许多机器学习算法,特定数据表示非常重要。首先对数据进行缩放,然后手动合并特征,再利用无监督机器学习来学习特征。因此,大多数机器学习应用不仅需要应用单个算法,而且还需要将许多不同的处理步骤和机器学习模型链接在一起。Pipeline类可以用来简化构建变换和模型链的…...
自媒体工作室如何矩阵?自媒体矩阵养号策略
一、自媒体工作室矩阵搭建方法 1.纵向矩阵:在主流平台都开设账号,覆盖不同用户触达场景。 短视频:抖音、快手、视频号(侧重私域沉淀) 2.主账号导流:通过关联账号、评论区跳转链接实现流量互通 本地生活…...
Pywinauto:轻松实现Windows桌面自动化实战
你是否厌倦了每天重复点击软件界面的枯燥操作?是否希望能像自动化网页那样,轻松控制桌面程序?在自动化测试逐渐扩展到客户端桌面的今天,你还不知道 pywinauto,就真的落后了! 手动测试Windows桌面应用&…...
告别传统的防抖机制,提交按钮的新时代来临
目录 背景 目标 核心代码 样式定义:让图标居中、响应父级颜色 SVG 图标:轻量、无依赖的 loading 图标 指令注册:全局注册 v-bLoading DOM 操作:添加与清除 loading 图标 1. 添加 loading 图标 2. 清除 loading 图标 动画…...
【Linux】Linux安装并配置MongoDB
目录 1.添加仓库 2.安装 MongoDB 包 3.启动 MongoDB 服务 4. 验证安装 5.配置 5.1.进入无认证模式 5.2.1创建用户 5.2.2.开启认证 5.2.3重启 5.2.4.登录 6.端口变更 7.卸载 7.1.停止 MongoDB 服务 7.2.禁用 MongoDB 开机自启动 7.3.卸载 MongoDB 包 7.4.删除数…...
PT2031K单触控单输出触摸IC
1.产品概述 ● PT2031K是一款电容式触摸控制ASIC,支持单通道触摸输入和单路同步开关输出。适用于雾化器、车载用品、电子玩具、消费类电子产品等领域,具有低功耗、高抗干扰、宽工作电压范围的突出优势。 2.主要特性 ● 工作电压范围:2.4~5.5…...
MySQL 与 FastAPI 交互教程
目录 1. 使用 Docker 启动 MySQL2. 创建 FastAPI 应用安装必要的依赖创建项目结构创建数据库连接模块创建数据模型创建 Pydantic 模型(用于请求和响应)创建主应用 3. 运行和测试应用启动应用访问 API 文档 4. 测试 API 端点创建用户获取所有用户获取特定…...
分布式 ID 生成的五种方法:优缺点与适用场景
0.简介 在分布式系统中,生成全局唯一的id是一个常见的需求。由于分布式系统的特性(多节点,网络分区,时钟不同步等),传统的单机ID生成方式不再适用,所以一些分布式生成方式应运而生,…...
ES(Elasticsearch)的应用与代码示例
Elasticsearch应用与代码示例技术文章大纲 一、引言 Elasticsearch在现代化应用中的核心作用典型应用场景分析(日志分析/全文检索/数据聚合) 二、环境准备(前提条件) Elasticsearch 8.x集群部署要点IK中文分词插件配置指南Ingest Attachment插件安装…...
MinIO 开源的分布式文件服务器
如下是java代码调用MinIO的SDK实现文件的上传,并获取url <dependency><groupId>com.squareup.okhttp3</groupId><artifactId>okhttp</artifactId><version>4.9.3</version> <!-- 你可以选择4.8.1或更高版本 --></dependenc…...
蓝牙AVRCP协议概述
AVRCP(Audio/Video Remote Control Profile)定义了蓝牙设备和 audio/video 控制功能通信的特 点和过程,另用于远程控制音视频设备,底层传输基于 AVCTP 传输协议。该 Profile 定义了AV/C 数字命令控制集。命令和信息通过 AVCTP(Audio/Video Control Trans…...
【全网首发】解决coze工作流批量上传excel数据文档数据重复的问题
注意:目前方法将基于前一章批量数据库导入的修改!!!!请先阅读上篇文章的操作。抄袭注明来源 背景 上一节说的方法可以批量导入文件到数据库,但是无法解决已经上传的条目更新问题。简单来说,不…...
Hue面试内容整理-Hue 架构与前后端通信
Cloudera Hue 是一个基于 Web 的 SQL 助手,旨在为数据分析师和工程师提供统一的界面,以便与 Hadoop 生态系统中的各个组件(如 Hive、Impala、HDFS 等)进行交互。其架构设计强调前后端的分离与高效通信,确保系统的可扩展性和可维护性。以下是 Hue 架构及其前后端通信机制的…...
【八股战神篇】Java高频基础面试题
1 面向对象编程有哪些特性? 面向对象编程(Object-Oriented Programming,简称 OOP)是一种以对象为核心的编程范式,它通过模拟现实世界中的事物及其关系来组织代码。OOP 具有三大核心特性:封装、继承、多态。…...
matlab建立整车模型,求汽车的平顺性
在MATLAB中建立整车模型评估汽车平顺性,通常采用多自由度振动模型。以下是基于四分之一车模型的详细步骤和代码示例,可扩展至整车模型。 1. 四分之一车模型(简化版) 模型描述 自由度:2个(车身垂直位移 z2…...
在Linux服务器上部署Jupyter Notebook并实现ssh无密码远程访问
Jupyter notebook版本7.4.2(这个版本AI提示我Jupyter7(底层是 jupyter_server 2.x) 服务器开启服务 安装Jupyter notebook 7.4.2成功后,终端输入 jupyter notebook --generate-config 这将在 ~/.jupyter/ 目录下生成 jupyter_…...
C#数组与集合
🧠 一、数组(Array) 1. 定义和初始化数组 // 定义并初始化数组 int[] numbers new int[5]; // 默认值为 0// 声明并赋值 string[] names { "Tom", "Jerry", "Bob" };// 使用 new 初始化 double[] scores …...
服务器内部可以访问外部网络,docker内部无法访问外部网络,只能docker内部访问
要通过 iptables 将容器中的特定端口请求转发到特定服务器,你需要设置 DNAT(目标地址转换)规则。以下是详细步骤: 假设场景 容器端口: 8080(容器内服务监听的端口)目标服务器: 192.168.1.100(请…...
mathematics-2024《Graph Convolutional Network for Image Restoration: A Survey》
推荐深蓝学院的《深度神经网络加速:cuDNN 与 TensorRT》,课程面向就业,细致讲解CUDA运算的理论支撑与实践,学完可以系统化掌握CUDA基础编程知识以及TensorRT实战,并且能够利用GPU开发高性能、高并发的软件系统…...
ssti刷刷刷
[NewStarCTF 公开赛赛道]BabySSTI_One 测试发现过滤关键字,但是特殊符号中括号、双引号、点都能用 可以考虑拼接或者编码,这里使用拼接 ?name{{()["__cla"~"ss__"]}}?name{{()["__cla"~"ss__"]["__ba&…...
Zephyr OS Nordic芯片的Flash 操作
目录 概述 1. 软硬件环境 1.1 软件开发环境 1.2 硬件环境 2 Flash操作库函数 2.1 nRF52832的Flash 2.2 Nordic 特有的 Flash 操作 2.2.1 nrfx_nvmc_bytes_write 函数 2.2.2 nrfx_nvmc_page_erase函数 2.2.3 nrfx_nvmc_write_done_check 函数 3 操作Flash的接口函数…...
傅里叶变换实战:图像去噪与边缘提取
傅里叶变换在图像处理中的应用与实践详解(超详细教程实战代码) 🚀 本文从零开始详解傅里叶变换在图像处理中的应用,手把手教你实现图像去噪与边缘提取!全文配套Python代码,新手也能轻松上手! 一…...
go-中间件的使用
中间件介绍 Gin框架允许开发者在处理请求的过程中加入用户自己的钩子(Hook)函数这个钩子函数就是中间件,中间件适合处理一些公共的业务逻辑比如登录认证,权限校验,数据分页,记录日志,耗时统计 1.定义全局中间件 pac…...
昇腾NPU环境搭建
如果进入服务器输入npu-smi info可以看到npu情况,请直接跳转第三步 STEP1: 服务器安装依赖 sudo yum install -y gcc gcc-c make cmake unzip zlib-devel libffi-devel openssl-devel pciutils net-tools sqlite-devel lapack-devel gcc-gfortran python3-develyu…...
【HTML5学习笔记2】html标签(下)
1表格标签 1.1表格作用 显示数据 1.2基本语法 <table><tr> 一行<td>单元格1</td></tr> </table> 1.3表头单元格标签 表头单元格会加粗并且居中 <table><tr> 一行<th>单元格1</th></tr> </table&g…...
开源轻量级地图解决方案leaflet
Leaflet 地图:开源轻量级地图解决方案 Leaflet 是一个开源的 JavaScript 库,用于在网页中嵌入交互式地图。它以轻量级、灵活性和易用性著称,适用于需要快速集成地图功能的项目。以下是关于 Leaflet 的详细介绍和使用指南。 1. Leaflet 的核心…...