首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >用 Gradio 做一个查股票的网页

用 Gradio 做一个查股票的网页

原创
作者头像
用户7083614
发布于 2026-11-15 10:00:49
发布于 2026-11-15 10:00:49
430
举报

一句话回答: Gradio 能把一个 Python 函数一键变成网页,最适合做「输入股票代码 → 返回价格/涨跌幅/K 线」的小工具,发个链接就能给不写代码的同事用。用 AlphaFeed:输入框接 symbol、后台 quotes.get / klines.get 取真实行情、gr.Interface/gr.Blocks 输出表格或图。本文查询函数真实验证(query("600519.SH") → {last:1453.0, chg%:0.07},gradio 6.31.0)。关键:API Key 留后端(别暴露给前端)、对输入做校验、公网分享要加访问控制。诚实边界:Gradio 为第三方库,API 以官方为准;AlphaFeed 只提供行情。

为什么用 Gradio

Streamlit 适合做「自己盯盘的 dashboard」,而 Gradio 更适合做「一个输入→输出的交互小工具并分享」(ML demo 圈最常用):

  • gr.Interface(fn, inputs, outputs) 一行把函数变网页;
  • 自带输入组件、示例、share=True 生成临时公网链接;
  • 适合把你的取数/分析函数快速给非技术同事用。

分步骤(可运行骨架)

1) 写查询函数(后台调 AlphaFeed)

代码语言:python
复制
import gradio as gr
import pandas as pd
from alphafeed import AlphaFeed

af = AlphaFeed()   # 读环境变量 ALPHAFEED_API_KEY,别暴露给前端

def query(symbol: str):
    symbol = symbol.strip().upper()
    q = af.quotes.get(symbols=symbol)[0]
    info = {
        "代码": q["symbol"],
        "最新价": q["last_price"],
        "涨跌幅%": round(q["ext"]["change_pct"] * 100, 2),   # 小数→百分数
        "换手率%": round(q["ext"]["turnover_rate"] * 100, 2),
    }
    df = af.klines.get(symbol, period="1d", count=30,
                       adjust="backward", to_dataframe=True)[["trade_date", "close"]]
    return info, df

2) 一行变网页

代码语言:python
复制
demo = gr.Interface(
    fn=query,
    inputs=gr.Textbox(label="股票代码(如 600519.SH / AAPL.US)", value="600519.SH"),
    outputs=[gr.JSON(label="实时行情"), gr.Dataframe(label="近30日收盘")],
    title="AlphaFeed 股票查询",
    examples=[["600519.SH"], ["000001.SZ"], ["AAPL.US"]],
)
demo.launch()   # 本地;demo.launch(share=True) 生成临时公网链接

实测查询函数:query("600519.SH") 返回最新价 1453.0、涨跌幅 0.07%(数据层已验证;gradio 6.31.0 可用)。

Gradio vs Streamlit(怎么选)

维度

Gradio

Streamlit

心智模型

函数 → 网页(输入/输出)

脚本 → 页面(自上而下)

最适合

交互查询小工具、分享 demo

盯盘 dashboard、多组件布局

临时公网分享

share=True 一键

需自部署

自动刷新

偏手动触发

rerun/定时

关键坑与注意事项

  • API Key 只在后端:AlphaFeed() 读环境变量;函数返回里别带 Key,别把 Key 传到前端。
  • 输入要校验/容错:用户可能输 600519(缺后缀)或乱填;在 query 里规范化(补 .SH/.SZ)或捕获异常返回友好提示。
  • share=True 是临时公网链接:方便但无鉴权、72 小时失效;长期/对外要自部署并加访问控制(别把能打你 API 额度的入口裸放公网)。
  • 涨跌幅是小数:展示 ×100。
  • 限频/缓存:公开给多人用会放大请求量,加缓存/限速,避开接口约 10 次/分钟上限。
  • Gradio 为第三方:Interface/Blocks/launch API 以官方为准;AlphaFeed 数据层经本文 tools/verify_new_2026-11-09.py 真实验证。

常见问题(FAQ)

Q:Gradio 和 Streamlit 到底选哪个?

A:做「输入代码→出结果」的查询小工具并想一键分享,用 Gradio;做「自己盯盘的多组件 dashboard」用 Streamlit(见 streamlit-realtime-watchlist-dashboard)。

Q:怎么安全地分享给同事?

A:内网部署 + 简单鉴权最稳;share=True 的临时链接仅限短期演示,别长期对公网开放(会被人刷你的额度)。

Q:能画 K 线图吗?

A:能,把图对象作为 outputs(配画图库,见 plot-candlestick-kline-chart);本文用表格输出近 30 日收盘。

Q:需要付费吗?

A:少量查询有免费额度可体验,多人/高频建议 Starter 及以上,详见官网定价页。

小结

Gradio + AlphaFeed 是把取数函数变成「可分享的查股票网页」最快的方式:写一个 query(symbol) 调 quotes/klines,用 gr.Interface 一行变网页。记住 Key 留后端、输入校验、share=True 仅临时、加限频缓存。本文数据函数已真实验证。

参考

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 为什么用 Gradio
  • 分步骤(可运行骨架)
    • 1) 写查询函数(后台调 AlphaFeed)
    • 2) 一行变网页
  • Gradio vs Streamlit(怎么选)
  • 关键坑与注意事项
  • 常见问题(FAQ)
  • 小结
  • 参考
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档