You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Dash多页面应用中不修改文件名配置页面显示名称

解决Dash页面自定义显示名称的方法

要在不修改文件名的前提下修改下拉菜单中的页面显示名称,只需在页面注册时通过dash.register_page()的name参数指定自定义名称即可,具体操作如下:

1. 修改页面注册代码

在每个页面的dash.register_page()调用中添加name参数,传入你想要的显示文本。以pages/overview.py为例:

修改前:

dash.register_page(__name__)

修改后:

dash.register_page(__name__, name="1 - overview")

2. 验证效果

原app.py中的下拉菜单代码直接读取dash.page_registry里的page["name"]字段,这个字段会被你指定的自定义名称覆盖,无需修改app.py的代码,重启应用后下拉菜单中就会显示“1 - overview”。

修改后的完整代码示例

pages/overview.py

import dash
import dash_bootstrap_components as dbc
from dash import html

# 添加name参数自定义显示名称
dash.register_page(__name__, name="1 - overview")

SIDEBAR_STYLE = {
    "position": "fixed",
    "top": 0,
    "left": 0,
    "bottom": 0,
    "width": "16rem",
    "background-color": "#f8f9fa",
}

sidebar = html.Div(
    [
        html.H2("Filter"),
    ],
    style=SIDEBAR_STYLE,
)

content = html.Div(id="page-content")
layout = dbc.Row(
    [
        dbc.Col(sidebar, width=2),
        dbc.Col(content, width=9),
    ],
    className="g-0",
)

app.py(无需修改,若需自定义home页面名称可参照上述方法)

import dash
import dash_bootstrap_components as dbc
from dash_bootstrap_templates import load_figure_template


app = dash.Dash(__name__, use_pages=True, external_stylesheets=[dbc.themes.LUX]
                )
                
load_figure_template("LUX")


navbar = dbc.NavbarSimple(
    children=[
        dbc.DropdownMenu(
            [
                dbc.DropdownMenuItem(page["name"], href=page["path"])
                for page in dash.page_registry.values()
                if page["module"] != "pages.not_found_404"
            ],
            nav=True,
            label="More Pages",
        ),
    ],
    brand="- - - - Financial Evaluation",
    brand_href="/",
    id = "id-navbar"
)

# 若需自定义home页面名称,可添加name参数
# dash.register_page("home", layout="We're home!", path="/", name="首页")
dash.register_page("home", layout="We're home!", path="/")


app.layout = dbc.Container(
    [
        navbar,
        dash.page_container,
    ],
    className="dbc",
    fluid=True,
)


if __name__ == "__main__":
    app.run_server(debug=True)

注:dash.page_registry会自动收集每个页面注册时的name值,下拉菜单通过遍历这个注册表生成选项,因此指定name参数是最直接且符合Dash页面路由规范的方法。

内容的提问来源于stack exchange,提问作者olli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 23:42:41