1. Blocks 布局
  2. 渲染

刚开始使用 Gradio? 从这里开始: 入门指南

查看 发布历史

渲染

@gr.render(inputs=···)
def hello(···):
   ... 

描述

render 装饰器允许 Gradio Blocks 应用程序拥有动态布局,使应用程序中的组件和事件监听器可以根据自定义逻辑进行更改。将 @gr.render 装饰器附加到函数上,将导致该函数在输入更改时(或指定触发器激活时)重新运行。该函数包含将根据输入更新的组件和事件监听器。使用 render,您可以:
- 显示或隐藏组件
- 更改文本或布局
- 根据用户输入创建组件
@gr.render 的基本用法如下:
1. 创建一个函数并附加 @gr.render 装饰器。
2. 将输入组件添加到 @gr.render 的 inputs= 参数中,并在函数中为每个组件创建一个相应的参数。
3. 在函数内部添加所有您希望根据输入更新的组件。使用这些组件的任何事件监听器也应位于此函数内部。

示例用法

import gradio as gr

with gr.Blocks() as demo:
    textbox = gr.Textbox(label="Enter text")

    @gr.render(inputs=textbox)
    def show_message(text):
        if not text:
            gr.Markdown("Please enter some text.")
        else:
            gr.Markdown(f"You entered: {text}")

demo.launch()

初始化

参数
🔗
inputs: list[Component] | Component | None
默认 = None

用作输入的 gradio.components 列表。如果函数不接受输入,则此列表应为空。

🔗
triggers: list[EventListenerCallable] | EventListenerCallable | None
默认 = None

要监听的触发器列表,例如 [btn.click, number.change]。如果为 None,将监听任何输入的更改。

🔗
queue: bool
默认 = True

如果为 True,则会将请求放在队列中(如果队列已启用)。如果为 False,则不会将此事件放入队列,即使队列已启用。如果为 None,则将使用 Gradio 应用的队列设置。

🔗
trigger_mode: Literal['once', 'multiple', 'always_last'] | None
默认值 = "always_last"

如果设置为 "once"(除 `.change()` 之外所有事件的默认值),则在事件挂起时不允许任何提交。如果设置为 "multiple",则在事件挂起时允许无限次提交,而 "always_last"(`.change()` 和 `.key_up()` 事件的默认值)则允许在挂起事件完成后进行第二次提交。

🔗
concurrency_limit: int | None | Literal['default']
默认 = None

如果设置,这是可以同时运行的此事件的最大数量。可以设置为 None,表示没有并发限制(此事件可以同时运行任意数量)。设置为 "default" 可使用 `Blocks.queue()` 中的 `default_concurrency_limit` 参数定义的默认并发限制(该参数本身默认为 1)。

🔗
concurrency_id: str | None
默认 = None

如果设置,这是并发组的 ID。具有相同 `concurrency_id` 的事件将受到最低设置的 `concurrency_limit` 的限制。

🔗
show_progress: Literal['full', 'minimal', 'hidden']
默认 = "full"
gradio