Skip to content

ovlo/owid

Repository files navigation

🌍 OWID — Our World in Data 全球发展数据观察

基于 V 语言 + veb 框架 构建的 Web 应用,展示 Our World in Data 整理的全球发展数据。

功能

  • 📊 主题分类浏览:人口、健康、能源、经济、教育、食品等数据主题
  • 📈 数据指标展示:每个主题下多个关键指标,含数据值与来源
  • 🔍 数据概览:所有指标的汇总表格
  • 📱 响应式设计:基于 Bootstrap 5,适配桌面与移动端
  • 🛠️ 数据工具:独立的 CSV 下载与导入工具

技术栈

技术
语言 V 0.5.2
Web 框架 veb
数据库 MySQL 8.0 (via db.mysql)
数据库驱动 db.mysql (标准库)
前端 Bootstrap 5.3 + 自定义 CSS
模板 veb HTML 模板引擎

项目结构

owid/
├── main.v                 # 入口文件
├── v.mod                  # V 模块定义
├── config/config.v        # 应用配置
├── database/init.v        # 数据库连接与建表
├── handlers/handlers.v    # HTTP 处理器 / 数据查询
├── models/topic.v         # 数据模型
├── views/
│   ├── index.html         # 首页模板
│   ├── topic.html         # 主题详情模板
│   ├── data.html          # 数据概览模板
│   └── about.html         # 关于页面模板
├── static/
│   └── css/owid.css       # 自定义样式
├── data/                  # 下载的 CSV 数据文件
├── tools/
│   ├── seed/main.v        # 种子数据填充工具
│   ├── owid_download/main.v   # OWID 数据下载工具
│   └── owid_import/main.v     # CSV→MySQL 批量导入工具
└── tocodex-docs/          # 项目文档记录

快速开始

前置条件

1. 配置数据库

CREATE DATABASE owid CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'owid'@'localhost' IDENTIFIED BY 'Owid_Pass_2026!Strong';
GRANT ALL ON owid.* TO 'owid'@'localhost';
FLUSH PRIVILEGES;

连接配置可在 config/config.v 中修改。

2. 下载真实数据

从 Our World in Data 下载最新 CSV 数据集:

# 项目根目录
v run tools/owid_download/

下载的 CSV 文件保存到 data/ 目录下。

3. 导入数据库

将下载的 CSV 数据批量导入 MySQL:

v run tools/owid_import/

工具会自动创建主题和指标,并批量插入数据点(每批 500 行)。 已存在的数据会被覆盖(先删除旧数据再插入)。

4. 启动应用

v run .

访问 http://localhost:8080

导入数据集

主题 数据集 文件 数据点
人口 人口总数(历史) population.csv ~55K
人口 出生时预期寿命 life-expectancy.csv ~22K
人口 生育率 children-per-woman-un.csv ~19K
人口 中位年龄 median-age.csv ~19K
健康 5岁以下儿童死亡率 child-mortality.csv ~17K
健康 孕产妇死亡率 maternal-mortality.csv ~9K
能源 年度 CO₂ 排放量 annual-co2-emissions-per-country.csv ~29K
能源 可再生电力占比 share-electricity-renewables.csv ~8K
经济 人均 GDP(购买力平价) gdp-per-capita-worldbank.csv ~7K
教育 平均受教育年限 mean-years-of-schooling.csv ~4K

总计约 165K 条数据点,覆盖 278 个国家和地区

命令参考

命令 说明
v run . 启动 Web 服务器(端口 8080)
v run tools/owid_download/ 从 OWID 下载最新 CSV 数据
v run tools/owid_import/ 将 CSV 数据导入 MySQL
v run tools/seed/ 填充或重置种子数据
v run . -d trace 以调试模式启动

数据来源

数据由 Our World in Data 整理发布,通过 OWID Chart API 获取(参数 csvType=full&useColumnShortNames=true)。每个指标标注了原始数据来源(World Bank、WHO、UN 等)。

许可证

MIT

About

show datas for Our World in Data.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages