Gradio从入门到精通(6)---接口类Blocks

Gradio Blocks 灵活布局


前言

Blocks 可以让组件布局更加灵活,在不适用Blocks的情况下,组件的布局是默认的垂直布局。通过gr.Row , gr.Column等控制组件的布局

Blocks 是 Gradio 的低级 API,它允许您创建比 Interfaces 更多的自定义 Web 应用程序和演示(但仍然完全使用 Python)。

与 Interface 类相比,Blocks 提供了更大的灵活性和控制:(1) 组件的布局 (2) 触发函数执行的事件 (3) 数据流(例如,输入可以触发输出,从而触发下一级输出)。Blocks 还提供了将相关演示组合在一起的方法,例如使用选项卡。

Blocks 的基本用法如下:创建一个 Blocks 对象,然后将其用作上下文(使用 “with” 语句),然后在 Blocks 上下文中定义布局、组件或事件。最后,调用 launch() 方法启动演示。

一、Blocks布局方式

行布局(Row):用于水平排列组件。
列布局(Column):用于垂直排列组件。
标签页(Tab):允许你将界面分割成多个标签页,每个标签页包含独立的组件和布局。

二、方法

launch方法

gradio.Blocks.launch(···)

功能描述
launch()方法的主要功能是启动一个本地服务器,使得用户可以在Web浏览器中查看和交互Gradio应用程序。它提供了多种部署方式,包括本地部署、通过HuggingFace托管、FastAPI挂载以及Gradio-lite浏览器集成。

常用参数

参数名类型描述默认值
shareBoolean是否生成公共访问地址。当设置为True时,Gradio将提供一个外网URL以便访问应用。False
authTuple/Function设置登录验证。可以是一个包含用户名和密码的元组,或者是一个自定义的验证函数。
inlineBoolean是否将Gradio应用嵌入到当前页面的iframe中,而不是在新窗口或标签页中打开。False
inbrowserBoolean是否在新浏览器标签页中打开Gradio应用。如果为True,则点击启动按钮将在新标签页中打开应用。False
debugBoolean是否启用调试模式。在调试模式下,将提供更多错误信息,特别是在Jupyter环境中运行时。False
favicon_pathString (文件路径)设置网页图标的路径。允许你自定义浏览器标签页上显示的图标。
show_apiBoolean是否在Gradio应用的底部显示API帮助文档。这有助于开发者了解可用的API端点。False
ssl_verifyBoolean是否在请求外部资源时验证SSL证书。设置为False可以绕过自签名证书的验证错误,但请注意安全风险。True

示例代码

import gradio as gr
def reverse(text):
    return text[::-1]
with gr.Blocks() as demo:
    with gr.Row():
        button = gr.Button(value="Reverse")
        button.click(reverse, gr.Textbox(), gr.Textbox())

demo.launch(share=False, auth=("123", "123"))

在这里插入图片描述

可以看到使用gr.Row函数将button的和输入框放到了一行,如果使用该函数,则默认是垂直布局

import gradio as gr
def reverse(text):
    return text[::-1]
with gr.Blocks() as demo:
	button = gr.Button(value="Reverse")
    button.click(reverse, gr.Textbox(), gr.Textbox())

demo.launch(share=False, auth=("123", "123"))

在这里插入图片描述

queue方法

gradio.Blocks.queue(···)

功能描述
launch()方法的主要功能是通过启用队列,您可以控制用户何时知道自己在队列中的位置,并设置允许的最大事件数限制。

示例代码

with gr.Blocks() as demo:
    button = gr.Button(label="Generate Image")
    button.click(fn=image_generator, inputs=gr.Textbox(), outputs=gr.Image())
demo.queue(max_size=10)
demo.launch()

load方法

gradio.Blocks.load(block, ···)

功能描述
此侦听器在浏览器中最初加载 Blocks 时触发。

unload方法

gradio.Blocks.unload(fn, ···)

功能描述
当用户关闭或刷新选项卡以结束用户会话时,将触发此侦听器。它对于在应用程序关闭时清理资源很有用。

示例代码

import gradio as gr
with gr.Blocks() as demo:
    gr.Markdown("# When you close the tab, hello will be printed to the console")
    demo.unload(lambda: print("hello"))
demo.launch()

总结

Blocks的灵活性意味着你可以创建几乎任何类型的Web界面,但这也需要一定的学习和实践才能熟练掌握。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叶与花语

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值