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

React Next项目中导入Echart世界航线图 并配置中文

公司业务要求做世界航线图,跑了三个ai未果,主要是引入world.json失败,echart包中并不携带该文件,源码的world.json文件页面404找不到。需要自己寻找。这是整个问题卡壳的关键点,特此贴出资源网址。

目录

一、安装

二、下载world.json

三、创建地图组件WorldMap.js

四、引入地图组件到页面上

五、配置中文 

六、中文转换函数


一、安装

npm install echarts

二、下载world.json

world.json在最下面,点开直接粘贴到自己项目中引入

Index of /examples/data/asset/geo

三、创建地图组件WorldMap.js

import React, { useRef, useEffect } from "react";
import * as echarts from "echarts";const geoCoordMap = {"New York": [-74.0060, 40.7128],"London": [-0.1278, 51.5074],"Tokyo": [139.6917, 35.6895],"Beijing": [116.4074, 39.9092],
};const SHData = [[{ name: "Beijing", value: 105 }, { name: "New York", value: 105 }],[{ name: "Beijing", value: 105 }, { name: "London", value: 105 }],[{ name: "Beijing", value: 105 }, { name: "Tokyo", value: 105 }],
];const convertData = (data) => {const res = [];for (let i = 0; i < data.length; i++) {const dataItem = data[i];const fromCoord = geoCoordMap[dataItem[0].name];const toCoord = geoCoordMap[dataItem[1].name];if (fromCoord && toCoord) {res.push({fromName: dataItem[0].name,toName: dataItem[1].name,coords: [fromCoord, toCoord],});}}return res;
};const WorldMap = () => {const chartRef = useRef(null);useEffect(() => {// 动态加载世界地图数据fetch("/world.json") // 确保文件路径正确,这里假设 world.json 放在 public 文件夹下.then((res) => res.json()).then((mapData) => {echarts.registerMap("world", mapData); // 注册地图数据const myChart = echarts.init(chartRef.current);const seriesData = [{type: "lines",zlevel: 1,effect: {show: true,period: 6,trailLength: 0.7,color: "#fff",symbolSize: 3,},lineStyle: {color: "#46bee9",width: 0,curveness: 0.2,},data: convertData(SHData),},{type: "lines",zlevel: 2,symbol: ["none", "arrow"],symbolSize: 10,effect: {show: true,period: 6,trailLength: 0,symbol: "path://M1705.06,1318.313v-89.254l-319.9-221.799l0.073-208.063c0.521-84.662-26.629-121.796-63.961-121.491c-37.332-0.305-64.482,36.829-63.961,121.491l0.073,208.063l-319.9,221.799v89.254l330.343-157.288l12.238,241.308l-134.449,92.931l0.531,42.034l175.125-42.917l175.125,42.917l0.531-42.034l-134.449-92.931l12.238-241.308L1705.06,1318.313z",symbolSize: 15,},lineStyle: {color: "#46bee9",width: 1,opacity: 0.6,curveness: 0.2,},data: convertData(SHData),},{type: "effectScatter",coordinateSystem: "geo",zlevel: 2,rippleEffect: {brushType: "stroke",},label: {show: true,position: "right",formatter: "{b}",},symbolSize: (val) => val[2] / 8,itemStyle: {color: "#46bee9",},data: SHData.map((dataItem) => ({name: dataItem[1].name,value: geoCoordMap[dataItem[1].name].concat([dataItem[1].value]),})),},];myChart.setOption({geo: {map: "world",roam: true,itemStyle: {areaColor: "#404a59",borderColor: "#61727a",},emphasis: {itemStyle: {areaColor: "#7acfd6",},},},series: seriesData,});}).catch((error) => {console.error("Failed to load world map data:", error);});}, []);return <div ref={chartRef} style={{ width: "100%", height: "600px" }} />;
};export default WorldMap;

四、引入地图组件到页面上

import React from "react";
import styles from "../styles/AfterSalesPage.module.css";
import WorldMap from "../components/WorldMap"; // 确保使用默认导入const AfterSales = () => {return (<div className={styles.newsContainer}><WorldMap /></div>);
};export default AfterSales;

成果展示:

五、配置中文 

中文映射文件mapZHName.js

export let mapZHName = {'Afghanistan': '阿富汗','Angola': '安哥拉','Albania': '阿尔巴尼亚','United Arab Emirates': '阿联酋','Argentina': '阿根廷','Armenia': '亚美尼亚','Australia': '澳大利亚','Austria': '奥地利','Azerbaijan': '阿塞拜疆','Burundi': '布隆迪','Belgium': '比利时','Benin': '贝宁','Burkina Faso': '布基纳法索','Bangladesh': '孟加拉','Bulgaria': '保加利亚','Belarus': '白俄罗斯','Belize': '伯利兹','Bermuda': '百慕大','Bolivia': '玻利维亚','Brazil': '巴西','Brunei': '文莱','Bhutan': '不丹','Botswana': '博茨瓦纳','Canada': '加拿大','Switzerland': '瑞士','Chile': '智利','China': '中国','Cameroon': '喀麦隆','Colombia': '哥伦比亚','Costa Rica': '哥斯达黎加','Cuba': '古巴','Cyprus': '塞浦路斯','Germany': '德国','Djibouti': '吉布提','Denmark': '丹麦','Algeria': '阿尔及利亚','Ecuador': '厄瓜多尔','Egypt': '埃及','Eritrea': '厄立特里亚','Spain': '西班牙','Estonia': '爱沙尼亚','Ethiopia': '埃塞俄比亚','Finland': '芬兰','Fiji': '斐济','France': '法国','Gabon': '加蓬','United Kingdom': '英国','Georgia': '格鲁吉亚','Ghana': '加纳','Guinea': '几内亚','Gambia': '冈比亚','Greece': '希腊','Greenland': '格陵兰','Guatemala': '危地马拉','Guyana': '圭亚那','Honduras': '洪都拉斯','Croatia': '克罗地亚','Haiti': '海地','Hungary': '匈牙利','Indonesia': '印度尼西亚','India': '印度','Ireland': '爱尔兰','Iran': '伊朗','Iraq': '伊拉克','Iceland': '冰岛','Israel': '以色列','Italy': '意大利','Jamaica': '牙买加','Jordan': '约旦','Japan': '日本','Kazakhstan': '哈萨克斯坦','Kenya': '肯尼亚','Kyrgyzstan': '吉尔吉斯斯坦','Cambodia': '柬埔寨','Korea': '韩国','Kuwait': '科威特','Lebanon': '黎巴嫩','Liberia': '利比里亚','Libya': '利比亚','Sri Lanka': '斯里兰卡','Lesotho': '莱索托','Lithuania': '立陶宛','Luxembourg': '卢森堡','Latvia': '拉脱维亚','Morocco': '摩洛哥','Moldova': '摩尔多瓦','Madagascar': '马达加斯加','Mexico': '墨西哥','Macedonia': '马其顿','Mali': '马里','Myanmar': '缅甸','Montenegro': '黑山','Mongolia': '蒙古','Mozambique': '莫桑比克','Mauritania': '毛里塔尼亚','Malawi': '马拉维','Malaysia': '马来西亚','Namibia': '纳米比亚','New Caledonia': '新喀里多尼亚','Niger': '尼日尔','Nigeria': '尼日利亚','Nicaragua': '尼加拉瓜','Netherlands': '荷兰','Norway': '挪威','Nepal': '尼泊尔','New Zealand': '新西兰','Oman': '阿曼','Pakistan': '巴基斯坦','Panama': '巴拿马','Peru': '秘鲁','Philippines': '菲律宾','Papua New Guinea': '巴布亚新几内亚','Poland': '波兰','Puerto Rico': '波多黎各','Portugal': '葡萄牙','Paraguay': '巴拉圭','Qatar': '卡塔尔','Romania': '罗马尼亚','Russia': '俄罗斯','Rwanda': '卢旺达','Saudi Arabia': '沙特阿拉伯','Sudan': '苏丹','Senegal': '塞内加尔','Sierra Leone': '塞拉利昂','El Salvador': '萨尔瓦多','Somalia': '索马里','Suriname': '苏里南','Slovakia': '斯洛伐克','Slovenia': '斯洛文尼亚','Sweden': '瑞典','Swaziland': '斯威士兰','Syria': '叙利亚','Chad': '乍得','Togo': '多哥','Thailand': '泰国','Tajikistan': '塔吉克斯坦','Turkmenistan': '土库曼斯坦','Trinidad and Tobago': '特立尼达和多巴哥','Tunisia': '突尼斯','Turkey': '土耳其','Uganda': '乌干达','Ukraine': '乌克兰','Uruguay': '乌拉圭','United States': '美国','Uzbekistan': '乌兹别克斯坦','Venezuela': '委内瑞拉','Vietnam': '越南','Vanuatu': '瓦努阿图','Yemen': '也门','South Africa': '南非','Zambia': '赞比亚','Zimbabwe': '津巴布韦','Liechtenstein':'列支敦士登','Serbia':'塞尔维亚',"Aland": "奥兰群岛","Andorra": "安道尔","American Samoa": "美属萨摩亚","Antigua and Barb.": "安提瓜和巴布达","Bahrain": "巴林","Bahamas": "巴哈马","Bosnia and Herz.": "波斯尼亚和黑塞哥维那","Barbados": "巴巴多斯","Central African Rep.": "中非","Dem. Rep. Congo": "刚果民主共和国","Congo": "刚果","Comoros": "科摩罗","Cape Verde": "佛得角","Curaçao": "库拉索","Cayman Is.": "开曼群岛","Czech Rep.": "捷克","Dominica": "多米尼克","Falkland Is.": "福克兰群岛","Faeroe Is.": "法罗群岛","Micronesia": "密克罗尼西亚联邦","Guinea-Bissau": "几内亚比绍","Eq. Guinea": "赤道几内亚","Grenada": "格林纳达","Guam": "关岛","Isle of Man": "马恩岛","Br. Indian Ocean Ter.": "英属印度洋领地","Jersey": "泽西岛","Kiribati": "基里巴斯","Lao PDR": "老挝","Saint Lucia": "圣卢西亚","Malta": "马耳他","N. Mariana Is.": "北马里亚纳群岛","Montserrat": "蒙特塞拉特岛","Mauritius": "毛里求斯","Niue": "纽埃岛","Palau": "帕劳","Dem. Rep. Korea":"韩国","Palestine": "巴勒斯坦","Fr. Polynesia": "法属波利尼西亚","S. Sudan": "南苏丹","Singapore": "新加坡","Saint Helena":"圣赫勒拿","Solomon Is.": "所罗门群岛","St. Pierre and Miquelon": "圣皮埃尔和密克隆群岛","São Tomé and Principe": "圣多美和普林西比","Seychelles": "塞舌尔","Turks and Caicos Is.": "特克斯和凯科斯群岛","Timor-Leste": "东帝汶","Tonga": "汤加","Tanzania": "坦桑尼亚","St. Vin. and Gren.": "圣文森特和格林纳丁斯","U.S. Virgin Is.": "美属维尔京群岛","Samoa": "萨摩亚","W. Sahara":"西撒哈拉","Fr. S. Antarctic Lands":"马提尼克岛","Côte d'Ivoire":"科特迪瓦","N. Cyprus":"东塞浦路斯","Dominican Rep.": "多米尼加","Heard I. and McDonald Is.":"赫德岛和麦克唐纳群岛","Siachen Glacier":"锡亚琴冰川","S. Geo. and S. Sandw. Is.":"南乔治亚岛与南桑威奇群岛"};

六、中文转换函数

在WorldMap.js这个地图组件中,引入mapZHName.js,并添加转化函数,和航线地名的映射表。

完整代码如下:

import React, { useRef, useEffect } from 'react';
import * as echarts from 'echarts';
import { mapZHName } from '../public/mapZHName'; // 确保正确导入映射文件const geoCoordMap = {中国: [104.195397, 35.86166],纽约: [-74.006, 40.7128],伦敦: [-0.1278, 51.5074],东京: [139.6917, 35.6895],
};//配置航线
const SHData = [[{ name: '中国', value: 105 },{ name: '中国', value: 105 },],[{ name: '中国', value: 105 },{ name: '伦敦', value: 105 },],[{ name: '中国', value: 105 },{ name: '东京', value: 105 },],
];// 将 SHData 中的城市名称和对应的值转换为 ECharts 地图所需的连线数据格式
const convertData = (data) => {const res = [];for (let i = 0; i < data.length; i++) {const dataItem = data[i];const fromCoord = geoCoordMap[dataItem[0].name];const toCoord = geoCoordMap[dataItem[1].name];if (fromCoord && toCoord) {res.push({fromName: dataItem[0].name,toName: dataItem[1].name,coords: [fromCoord, toCoord],});}}return res;
};const WorldMap = () => {const chartRef = useRef(null);// 中文转换函数定义在组件内部const formatWorldMapToZH = (data) => {if (data.features) {data.features = data.features.map((item) => {if (mapZHName[item.properties.name]) {item.properties.name = mapZHName[item.properties.name];}return item;});}return data;};useEffect(() => {// 动态加载世界地图数据fetch('/world.json') // 确保文件路径正确,这里假设 world.json 放在 public 文件夹下.then((res) => res.json()).then((mapData) => {// 调用转换函数将地图数据中的英文地名转换为中文const formattedMapData = formatWorldMapToZH(mapData);echarts.registerMap('world', formattedMapData); // 注册地图数据const myChart = echarts.init(chartRef.current);const seriesData = [{type: 'lines',zlevel: 1,effect: {show: true,period: 6,trailLength: 0.7,color: '#fff',symbolSize: 3,},lineStyle: {color: '#46bee9',width: 0,curveness: 0.2,},data: convertData(SHData),},{type: 'lines',zlevel: 2,symbol: ['none', 'arrow'],symbolSize: 10,effect: {show: true,period: 6,trailLength: 0,symbol:'path://M1705.06,1318.313v-89.254l-319.9-221.799l0.073-208.063c0.521-84.662-26.629-121.796-63.961-121.491c-37.332-0.305-64.482,36.829-63.961,121.491l0.073,208.063l-319.9,221.799v89.254l330.343-157.288l12.238,241.308l-134.449,92.931l0.531,42.034l175.125-42.917l175.125,42.917l0.531-42.034l-134.449-92.931l12.238-241.308L1705.06,1318.313z',symbolSize: 15,},lineStyle: {color: '#46bee9',width: 1,opacity: 0.6,curveness: 0.2,},data: convertData(SHData),},{type: 'effectScatter',coordinateSystem: 'geo',zlevel: 2,rippleEffect: {brushType: 'stroke',},label: {show: true,position: 'right',formatter: '{b}',},symbolSize: (val) => val[2] / 8,itemStyle: {color: '#46bee9',},data: SHData.map((dataItem) => ({name: dataItem[1].name,value: geoCoordMap[dataItem[1].name].concat([dataItem[1].value]),})),},];myChart.setOption({geo: {map: 'world',nameMap: {China: '中国','New York': '纽约',London: '伦敦',Tokyo: '东京',},roam: true,itemStyle: {areaColor: '#404a59',borderColor: '#61727a',},emphasis: {itemStyle: {areaColor: '#7acfd6',},},},series: seriesData,});}).catch((err) => {console.error('Failed to load world map data:', err);});}, []);return <div ref={chartRef} style={{ width: '100%', height: '600px' }} />;
};export default WorldMap;

成果展示:

相关文章:

React Next项目中导入Echart世界航线图 并配置中文

公司业务要求做世界航线图&#xff0c;跑了三个ai未果&#xff0c;主要是引入world.json失败&#xff0c;echart包中并不携带该文件&#xff0c;源码的world.json文件页面404找不到。需要自己寻找。这是整个问题卡壳的关键点&#xff0c;特此贴出资源网址。 目录 一、安装 二…...

QT与网页显示数据公式的方法

一.网页中显示数学公式通常有三种主要方法 1.图片方式 原理&#xff1a;将公式转换为图片&#xff08;如 PNG、SVG&#xff09;&#xff0c;通过 <img> 标签嵌入网页。 实现步骤&#xff1a; 使用工具&#xff08;如 LaTeX dvipng、在线生成工具&#xff09;将公式渲…...

深入解析APP订阅页的运作机制(订阅页如何运作)

在当今数字经济的背景下&#xff0c;订阅模式已成为许多企业获取稳定收入的重要方式。无论是软件、视频流媒体还是电子商务&#xff0c;订阅服务都能为用户提供持续的价值体验。然而&#xff0c;如何有效地设计和运作一个订阅页&#xff0c;是决定用户是否愿意订阅的关键因素。…...

Golang倒腾一款简配的具有请求排队功能的并发受限服务器

golang官方指南[1]给了一些代码片段&#xff0c;层层递进演示了信道的能力: 1>. 信号量2>. 限流能力 var sem make(chan int, MaxOutstanding) func Serve(queue chan *Request) {for req : range queue {req: reqsem <- 1 go func() { // 只会开启MaxOutstandin…...

【运维】服务器系统从centos7重装为ubuntu22.04

目录 一、硬盘准备二、系统安装三、安装基本系统组件四、挂载机械硬盘五、问题解决 一、硬盘准备 【注意&#xff1a;这一步会把硬盘的数据清空&#xff0c;所以需要找一个空的U盘或者把U盘数据备份】 ubuntu22.04下载 需要先安装 bittorrent 下载完之后会打开一个网页 然后…...

创新技术引领软件供应链安全,助力数字中国建设

编者按 随着数字化转型的加速&#xff0c;针对软件供应链的攻击事件呈快速增长态势&#xff0c;目前已成为网络空间安全的焦点。如何将安全嵌入到软件开发到运营的全流程&#xff0c;实现防护技术的自动化、一体化、智能化&#xff0c;成为技术领域追逐的热点。 悬镜安全作为…...

【设计模式】建造者模式——工厂模式

三、建造者模式——工厂模式 3.1 工厂模式 创建一个类对象的传统方式是使用关键字new, 因为用new 创建的类对象是一个堆对象&#xff0c;可以实现多态。工厂模式通过把创建对象的代码包装起来&#xff0c;实现创建对象的代码与具体 的业务逻辑代码相隔离的目的(将对象的创建和…...

Java基础:枚举类enum入门案例

1.基础枚举定义与使用&#xff1a; package com.zxy;public class Main {public static void main(String[] args) { // 获取枚举值cars car cars.BMW;switch (car){case BMW :System.out.println("BMW");break;case BENZ :System.out.println("BENZ&…...

蓝桥备赛(18)- 红黑树和 set 与 map(上)

对于二叉搜索树 &#xff0c; 平衡二叉树 &#xff0c; 以及红黑树 &#xff0c; 目前只需要了解背后的原理 &#xff0c; 不做代码实现的要求 &#xff0c; 重要的就是了解各种操作的时间复杂度即可 &#xff0c; 为set 与 map 做铺垫 一、二叉搜索树 1.1 基本概念 相较与于堆…...

Spring Boot集成EasyExcel

1. 初始化Spring Boot项目 首先&#xff0c;使用Spring Initializr&#xff08;https://start.spring.io/&#xff09;生成一个基本的Spring Boot项目。选择以下依赖项&#xff1a; Spring WebLombok (用于减少样板代码)SLF4J (用于日志记录) 2. 添加依赖 在你的pom.xml文件…...

obeaver 连接oracle 库 模式乱码

下载orai18n-12.1.0.2.0.jar 库--添加文件--把提前下载好的jar 随便放在一个文件夹下--添加文件选中&#xff0c;然后点击找到类&#xff0c; 选择类&#xff0c;确定即可正常 下载地址&#xff1a;https://download.csdn.net/download/weixin_42845364/88368302...

ChatGPT 使用教程:深度探索AI常用功能技巧

文章目录 前言一、ChatGPT介绍1.1 人工智能与自然语言处理的发展1.2 ChatGPT 的诞生与意义 二、ChatGPT 基础入门2.1 注册与登录2.2 对话界面介绍2.3 基本提问方式 三、常用功能详解3.1 文本生成3.2 问题回答3.3 语言翻译3.4 代码生成与调试 四、高级使用技巧4.1 指令优化4.2 多…...

無人機的應用程序有那些可以部署在linux server 系統

Dronecode Project&#xff1a;由 Linux Foundation 主導的開源項目&#xff0c;提供無人機航空操作系統和導航工具的開發框架&#xff0c;適合開發者使用。 DeepSeek-R1&#xff1a;這是一個人工智能模型&#xff0c;適用於無人機的數據處理和分析&#xff0c;支持在 Linux 系…...

[HUBUCTF 2022 新生赛]messy_traffic

下载附件 看到文件类型直接用wireshark打开&#xff0c;对MySQL协议进行追踪流&#xff0c;并没有什么发现&#xff0c;后面对NO.437发现有用信息&#xff0c;http追踪流 发现**system(‘cat passwd.txt’);**这里是在打开查看passwd.txt&#xff0c;密码是"SignUpForHUBU…...

铁人三项(第五赛区)_2018_rop题解

先启动靶机连接看看。 直接ls&#xff0c;就给我输出句话&#xff0c;看来不能直接拿flag。 那走下流程。 查下位数和其他信息&#xff1a; 可以看到是32位的包&#xff0c;开了NX&#xff0c;但没开其他保护。 用ida32打开looklook。 主函数就是个这&#xff0c;看到了弹出的…...

package.json 依赖包约束及快速删除node_modules

文章目录 一、package.json版本约束1、初始项目安装2. 已有 yarn.lock 文件的项目安装3. 特殊情况手动修改 package.json 版本&#xff1a;使用 yarn upgrade 命令&#xff1a; 二、快速删除node_modules三、depcheck 检测npm未使用的依赖 一、package.json版本约束 1、初始项…...

Compose 实践与探索六 —— 动画的流程控制与 Transition

1、Block 参数&#xff1a;监听每一帧 animateTo() 与 animateDecay() 中都有一个函数类型的 block 参数&#xff1a; suspend fun animateDecay(initialVelocity: T,animationSpec: DecayAnimationSpec<T>,block: (Animatable<T, V>.() -> Unit)? null): An…...

虚拟机Contos7为啥不能被本机电脑访问?

1.查看防火墙是否开启 systemctl status firewalld.service 2.如果防火墙关闭就可以直接被访问 3.如果防火墙打开了我们需要开放端口(下面为防火墙一系列指令) # 关闭防火墙 systemctl stop firewalld.service# 打开防火墙 systemctl start firewalld.service# 关闭开启自启…...

【21】单片机编程核心技巧:if语句逻辑与真假判断

【21】单片机编程核心技巧&#xff1a;if语句逻辑与真假判断 七律 条件分野 if语句判真假&#xff0c;括号条件定乾坤。 非零为真零为假&#xff0c;大括号内藏玄门。 省略虽简风险在&#xff0c;代码规范护本根。 单片逻辑由心控&#xff0c;条件分支自成文。 注释&#xf…...

Java 实现 Android ViewPager2 顶部导航:动态配置与高效加载指南

Java 实现&#xff1a;明确使用的编程语言。Android ViewPager2&#xff1a;技术栈和核心组件。顶部导航&#xff1a;功能点。动态配置与高效加载指南&#xff1a;突出动态配置的灵活性和性能优化的重点。 在 Android 中使用 Java 实现 ViewPager2 和 TabLayout 的顶部导航也是…...

Python :数据模型

一. 什么是数据模型&#xff1f; Python数据模型是Python对象系统的抽象&#xff0c;通过一组特殊方法​&#xff08;如__init__、__len__等&#xff09;和协议​&#xff08;如迭代协议、上下文管理协议&#xff09;&#xff0c;定义了对象如何与语言的内置功能&#xff08;如…...

idea超级AI插件,让 AI 为 Java 工程师

引言​ 用户可在界面中直接通过输入自然语言的形式描述接口的需求&#xff0c;系统通过输入的需求自动分析关键的功能点有哪些&#xff0c;并对不确定方案的需求提供多种选择&#xff0c;以及对需求上下文进行补充&#xff0c;用户修改确定需求后&#xff0c;系统会根据需求设…...

施磊老师c++笔记(五)

继承与多态-深入掌握oop语言最强大的机制 文章目录 继承与多态-深入掌握oop语言最强大的机制1.继承的基本意义2.派生类的构造过程3.重载,隐藏,覆盖4.虚函数, 静态绑定和动态绑定--面试重点5.虚析构函数--重点在于什么呢时候用6.再讨论虚函数和动态绑定7.理解多态到底是什么8.理…...

µCOS-III从入门到精通 第十四章(软件定时器)

参考教程&#xff1a;【正点原子】手把手教你学UCOS-III实时操作系统_哔哩哔哩_bilibili 一、软件定时器简介 1、定时器的概念与种类 &#xff08;1&#xff09;定时器的概念&#xff1a;从指定的时刻开始&#xff0c;经过一个指定时间&#xff0c;然后触发一个超时事件&…...

MySQL数据库复杂的增删改查操作

在前面的文章中&#xff0c;我们主要学习了数据库的基础知识以及基本的增删改查的操作。接下去将以一个比较实际的公司数据库为例子&#xff0c;进行讲解一些较为复杂且现时需求的例子。 基础知识&#xff1a; 一文清晰梳理Mysql 数据库基础知识_字段变动如何梳理清楚-CSDN博…...

KCD 北京站丨Volcano 邀您畅聊云原生智能调度技术与应用

AI与云原生技术正以前所未有的速度改变着我们的世界&#xff0c;而云原生技术则如同一座坚实的桥梁&#xff0c;连接着传统IT与现代化的数字世界。当AI与云原生相遇&#xff0c;它们相互赋能&#xff0c;相互促进&#xff0c;为开发者们打开了一个全新的技术宇宙。 3 月 15 日&…...

BLEU评估指标

一、介绍 用于评估模型生成的句子和实际句子差异的指标&#xff0c;取值在[0,1]&#xff0c;匹配度高就距离1近&#xff0c;反之距离0近。这个指标计算代价小&#xff0c;容易理解&#xff0c;与语言无关&#xff0c;与人类评价结果高度相关。 BLEU主要基于n-gram匹配&#x…...

高效自动化测试:打造Python+Requests+Pytest+Allure+YAML的接口测试框架

一、背景 在快节奏的开发周期中&#xff0c;如何确保接口质量&#xff1f;自动化测试是关键。通过构建标准化、可复用的测试框架&#xff0c;能显著提升测试效率与准确性&#xff0c;为项目质量保驾护航[1][7]。 二、目标 ✅ 核心目标&#xff1a; ● 实现快速、高效的接口测试…...

如何修复 Tauri 发布后程序运行时显示 `asset not found: index.html` 的问题

如何修复 Tauri 发布后程序运行时显示 asset not found: index.html 的问题 在使用 Tauri 发布应用程序时&#xff0c;如果运行时出现 asset not found: index.html 的错误&#xff0c;通常是因为 Tauri 无法找到或正确加载前端资源文件&#xff08;如 index.html&#xff09;…...

BSides Vancouver: 2018 (Workshop)

BSides Vancouver: 2018 (Workshop) 来自 <https://www.vulnhub.com/entry/bsides-vancouver-2018-workshop,231/> 1&#xff0c;将两台虚拟机网络连接都改为NAT模式 2&#xff0c;攻击机上做namp局域网扫描发现靶机 nmap -sn 192.168.23.0/24 那么攻击机IP为192.168.23…...