news 2026/5/1 9:15:08

Day 71:【99天精通Python】项目篇开篇 - 金融数据看板需求分析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Day 71:【99天精通Python】项目篇开篇 - 金融数据看板需求分析

Day 71:【99天精通Python】项目篇开篇 - 金融数据看板需求分析

前言

欢迎来到项目篇的第一天(第71天)!

在之前的 70 天里,我们像练武一样,先练了扎马步(基础语法),又练了拳法(进阶特性),还学了刀枪剑戟(实战库)。现在,是时候下山闯荡江湖,打一场硬仗了。

我们将启动第一个大型综合项目——金融数据可视化看板 (Financial Dashboard)

不像之前的练习代码那样只有几十行,这个项目将包含数据采集、存储、分析、Web展示全流程,代码量可能会达到上千行。它将是你简历上非常亮眼的一个作品。

本节内容:

  • 项目背景与目标
  • 需求分析 (User Stories)
  • 技术选型 (Stack)
  • 系统架构设计
  • 数据库表结构设计

一、项目背景

在金融投资领域,信息就是金钱。投资者需要实时监控多只股票的行情,查看历史走势,对比不同股票的收益率。
虽然有很多炒股软件,但作为程序员,我们要开发一个属于自己的、可定制的数据看板。

核心目标
搭建一个 Web 网站,用户可以在网页上搜索股票代码,查看该股票的 K 线图、移动平均线、成交量,并能对比多只股票的涨跌幅。


二、需求分析

我们把功能拆解为具体的模块:

  1. 数据获取模块

    • 对接金融数据接口(Tushare 或 BaoStock)。
    • 支持历史数据下载(过去 1-3 年)。
    • 支持每日增量更新(定时任务)。
  2. 数据存储模块

    • 将下载的数据存入数据库,避免重复请求接口。
    • 使用 SQL 进行高效查询。
  3. Web 展示模块

    • 首页:显示大盘指数(上证指数、纳斯达克)的走势。
    • 搜索页:输入代码(如600519),跳转到详情页。
    • 详情页:展示该股票的 K 线图 (Candlestick) 和均线 (MA)。
    • 对比页:选择两只股票,画出它们的收益率曲线对比图。

三、技术选型

为了实现上述功能,我们需要组合使用之前学过的技术:

模块技术栈理由
Web 框架Flask轻量级,适合做数据展示型应用。
数据源BaoStock免费、无门槛的 A 股数据接口。
数据库SQLite简单易用,无需额外部署服务器。
ORMSQLAlchemyFlask 的标配 ORM,操作数据库更方便。
图表库ECharts百度开源的 JS 图表库,比 Matplotlib 生成的静态图更炫酷、可交互。
定时任务APSchedulerFlask 的定时任务扩展,用于每天收盘后更新数据。

四、系统架构设计

前端展示

后端逻辑

HTTP请求

查询

调用

每天16:00

下载数据

存入

渲染

加载

展示

用户浏览器

Flask Web Server

SQLite 数据库

数据处理模块

定时任务

爬虫模块

BaoStock API

HTML 模板

ECharts JS库

动态K线图


五、数据库设计

我们需要两张核心表:一张存股票列表(公司名、代码),一张存具体的日线行情数据。

5.1 股票基础信息表 (stock_basic)

字段名类型说明
codeVARCHAR股票代码 (PK),如sh.600519
nameVARCHAR股票名称,如贵州茅台
industryVARCHAR所属行业
update_timeDATETIME最后更新时间

5.2 日线行情表 (stock_daily)

字段名类型说明
idINTEGER自增主键
codeVARCHAR股票代码 (FK)
dateDATE交易日期
openFLOAT开盘价
closeFLOAT收盘价
highFLOAT最高价
lowFLOAT最低价
volumeFLOAT成交量

六、环境搭建

创建一个新的项目文件夹finance_board,并配置虚拟环境。

mkdirfinance_boardcdfinance_board# 1. 创建虚拟环境python -m venv venv# 2. 激活环境 (Windows)venv\Scripts\activate# (Mac/Linux: source venv/bin/activate)# 3. 安装依赖pipinstallflask flask-sqlalchemy baostock pandas apscheduler

七、项目结构初始化

建立以下目录结构:

finance_board/ ├── app.py # Flask 入口 ├── config.py # 配置文件 ├── models.py # 数据库模型 ├── services/ # 业务逻辑 │ ├── data_fetcher.py # 数据抓取 │ └── analysis.py # 数据分析 ├── static/ # 静态文件 (JS/CSS) └── templates/ # HTML 模板

八、小结

今天是项目启动的第一天。做项目最忌讳上来就写代码,想清楚写得快更重要。

我们完成了:

  1. 需求明确:要做一个股票数据看板。
  2. 架构设计:确定了 Flask + SQLite + ECharts 的技术路线。
  3. 数据建模:设计了数据库表结构。

明天 (Day 72),我们将开始编写后端核心代码:搭建数据库模型,并编写脚本从 BaoStock 拉取股票列表和历史数据。


系列导航

  • 上一篇:Day 70 - 实战篇总结
  • 下一篇:Day 72 - 金融数据看板数据层实现(待更新)
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/25 23:24:10

通义千问2.5-7B上下文溢出?128K长度配置实战教程

通义千问2.5-7B上下文溢出?128K长度配置实战教程 1. 引言:为何需要处理长上下文? 随着大模型在文档摘要、代码分析、法律文书处理等场景的深入应用,长上下文建模能力已成为衡量模型实用性的重要指标。通义千问2.5-7B-Instruct作为…

作者头像 李华
网站建设 2026/5/1 6:12:19

Hunyuan模型推理延迟高?HY-MT1.8B吞吐量优化实战教程

Hunyuan模型推理延迟高?HY-MT1.8B吞吐量优化实战教程 1. 引言:企业级翻译服务的性能挑战 在实际生产环境中,Tencent-Hunyuan/HY-MT1.5-1.8B 作为一款参数量达18亿的高性能机器翻译模型,广泛应用于多语言内容处理、跨境交流和本地…

作者头像 李华
网站建设 2026/5/1 6:08:41

Heygem系统深度解析:AI驱动的数字人视频合成原理

Heygem系统深度解析:AI驱动的数字人视频合成原理 1. 技术背景与核心价值 近年来,随着生成式人工智能技术的快速发展,数字人视频合成已成为内容创作、在线教育、虚拟客服等领域的关键技术。传统视频制作依赖专业设备和后期团队,成…

作者头像 李华
网站建设 2026/5/1 4:45:10

IndexTTS2效果优化:语调、停顿、重音调节实战技巧

IndexTTS2效果优化:语调、停顿、重音调节实战技巧 1. 引言:提升语音自然度的关键挑战 随着AI语音合成技术的快速发展,用户对TTS(Text-to-Speech)系统的自然度和表现力提出了更高要求。尽管IndexTTS2在V23版本中显著增…

作者头像 李华
网站建设 2026/5/1 4:48:01

避坑指南:PETRV2-BEV模型训练常见问题全解

避坑指南:PETRV2-BEV模型训练常见问题全解 1. 引言 随着自动驾驶技术的快速发展,基于多摄像头的3D感知模型逐渐成为研究热点。PETRv2-BEV作为其中的代表性框架,通过引入时间建模与任务特定查询机制,在3D目标检测、BEV分割和车道…

作者头像 李华
网站建设 2026/5/1 5:44:01

实战案例:利用波特图优化反激电源环路响应

实战案例:用波特图“驯服”反激电源的环路震荡一个让工程师夜不能寐的问题你有没有遇到过这样的场景?一款已经量产的12V/2A反激电源,在实验室测试时一切正常,可一到客户现场带载运行——负载从轻载突然跳到满载,输出电…

作者头像 李华