编程学习网 > 编程语言 > Python > 5 行 Python 代码,把你的模型变成 Web 应用
2026
09-01

5 行 Python 代码,把你的模型变成 Web 应用


一、模型做出来了,怎么展示给别人看?

上个月我训练了一个简单的图像分类模型,想给团队演示一下。

找前端同事帮忙搭页面,排期要三天。学 Flask/Django 自己写,最快的也要半天。我最后直接用 Gradio 搭了一个,从开始到可以分享链接,前后不到 10 分钟。

不是我不喜欢写前端,是展示一个 Demo”这件事的成本不应该这么高。我只需要一个输入框、一个按钮、一个结果显示区域,这些需求 Gradio 几行代码就搞定了。

Pasted image 20260831192008

二、Gradio 是什么?

Gradio 是一个开源的 Python 包,GitHub 上已有 43.4k StarApache-2.0 协议。

项目地址:https://github.com/gradio-app/gradio

它做的事情很简单:用 Python 代码快速构建机器学习模型的交互式 Web 界面。你不需要懂 HTMLCSSJavaScript,不需要部署服务器,不需要配置域名。

只要你会写 Python 函数,就能用 Gradio 给它套一个 Web 界面。

核心思路是这样的:你有一个 Python 函数,Gradio 帮你自动生成一个网页,包含输入控件和输出显示。用户通过网页操作,你的函数在后台运行,结果实时显示在页面上。

三、怎么用?5 行代码一个 Demo

Gradio 最核心的概念是 gr.Interface,三个参数搞定一切:fn 是你的 Python 函数,inputs 定义用户输入,outputs 定义输出显示。

一个最简单的例子:


import gradio as gr
def greet(name, intensity):
    return "Hello, " + name + "!" * int(intensity)
demo = gr.Interface(
    fn=greet,
    inputs=["text", "slider"],
    outputs=["text"],
)
demo.launch()

这段代码生成一个网页,左边是文本输入框和滑块,右边是输出文字。输入名字,调整滑块,点提交看结果。运行后浏览器自动打开 http://localhost:7860,一个 Web 应用就跑起来了。

一键分享

加一个参数:


demo.launch(share=True)

Gradio 会自动生成一个公网链接,比如 https://a23dsf231adb.gradio.live,把这个链接发给任何人,他们都能访问你的 Demo。不需要你部署服务器,不需要配置域名。

这个功能对快速验证想法和展示原型特别有用。模型还没完全训练好?先搭个 Gradio Demo 给同事看看效果。

四、不止是 InterfaceBlocks ChatInterface

gr.Interface 是最简单的用法。如果你需要更灵活的界面布局,Gradio 提供了两个更高级的 API

gr.Blocks:自定义布局

gr.Blocks 让你像搭积木一样自由组合界面组件,控制每个元素的位置、样式、交互逻辑。Automatic1111 Web UIStable Diffusion 最流行的 Web UI)就是用 Gradio Blocks 搭的。


import gradio as gr
with gr.Blocks() as demo:
    gr.Markdown("# 我的应用")
    with gr.Row():
        inp = gr.Textbox(label="输入")
        out = gr.Textbox(label="输出")
    btn = gr.Button("提交")
    btn.click(fn=greet, inputs=inp, outputs=out)
demo.launch()

gr.ChatInterface:聊天机器人

Gradio 5.0 之后加入了 gr.ChatInterface,专门用来搭建聊天机器人界面。几行代码就能做出一个类似 ChatGPT 的对话界面,支持流式输出。

五、30+ 内置组件

Gradio 提供了 30 多种内置组件,覆盖常见的交互需求:

输入类:TextboxNumberSliderCheckboxRadioDropdownFileImageAudioVideoWebcam

输出类:TextboxLabelImageAudioVideoDataframePlotGalleryJSON

布局类:RowColumnTabAccordionMarkdownHTML

其他:ChatbotModel3DFileExplorerTimerState

你不需要自己写上传按钮,不需要自己处理图片压缩,不需要自己画图表。Gradio 的组件都处理好了,直接调用就行。

六、进阶功能

Hot Reload


gradio app.py

 gradio 命令代替 python app.py,代码改了之后自动刷新,不用手动重启。

Vibe Mode


gradio --vibe app.py

开启后,浏览器里会出现一个聊天窗口,你可以用自然语言描述想要修改的界面,Gradio 自动帮你改代码。比如你说把标题改成红色,它就把 Markdown 的标题颜色改了。这个功能对快速调整界面很方便。

gradio_client

如果你需要用代码调用别人的 Gradio Demo


from gradio_client import Client
client = Client("https://a23dsf231adb.gradio.live")
result = client.predict("Hello", 3, api_name="/predict")
print(result)

gradio_client 可以连接任何公开的 Gradio 应用,像调用普通 Python 函数一样调用。

Hugging Face Spaces

Gradio Hugging Face Spaces 深度集成。你可以直接把 Gradio 应用部署到 Hugging Face Spaces,获得一个永久的公网链接,免费托管,不需要自己买服务器。

七、适合谁?

适合你,如果:

你训练了一个 ML 模型,需要一个快速 Demo

你不会前端开发,但想把 Python 工具做成 Web

你需要一个交互式界面来展示数据分析结果

你想快速验证一个想法,不想花时间搭基础设施

你是学生或研究者,需要做演示

可能不适合你,如果:

你需要高度定制化的 Web 应用——Gradio 的组件库有限,复杂场景可能不够用

你需要生产级别的 Web 应用——Gradio 更适合 Demo 和原型,不是生产框架

你追求极致的性能——Gradio 的实时渲染对超大规模应用有瓶颈

八、写在最后

Gradio 解决的核心问题是:我的 Python 函数需要一个 Web 界面,但我不会写前端。

43.4k Star 不是白来的。它把Demo”这件事的门槛降到了零。pip install,写一个 Python 函数,gr.Interface 包一下,launch(share=True),链接一扔,完事。

如果你还在用 Flask/Django 搭模型 Demo,或者苦于不会写前端,Gradio 值得一试。从最简单的 gr.Interface 开始,5 分钟就能出第一个 Demo

以上就是“5 行 Python 代码,把你的模型变成 Web 应用的详细内容,想要了解更多Python教程欢迎持续关注编程学习网。  

扫码二维码 获取免费视频学习资料

Python编程学习

查 看2022高级编程视频教程免费获取