我正在使用 plotly dash 构建仪表板。
对于Web框架,我使用了Django框架进行身份验证和嵌入其他应用程序。
使用 django_plotly_dash 库将 plotly dash 与 Django 集成。
我尝试使用 django_plotly_dash 包将 dash 应用程序集成到 django 中。
情节破折号导航:
from django_plotly_dash import DjangoDash
app = DjangoDash('SimpleExample',
external_stylesheets=[dbc.themes.SOLAR, dbc.themes.SPACELAB, dbc.themes.BOOTSTRAP])
profile_menu = dmc.Menu(
[
dmc.MenuTarget(dmc.Avatar("BR", color="blue",radius="xl",id="user_profile_dropdown")),
dmc.MenuDropdown(
[
dmc.MenuItem(
"Profile",
href="/my-profile",
# target="_blank",
icon=DashIconify(icon="streamline:interface-user-profile-focus-close-geometric-human-person-profile-focus-user"),
),
dmc.MenuItem(
"Logout",
icon=DashIconify(icon="majesticons:logout-half-circle"),
href='/logout',
id='logout-button'
),
]
),
],
trigger="hover",
# position='top-end',
style=right_align_style,
)
app.layout = html.Div([
profile_menu
])
welcome.html
<!DOCTYPE html>
<html lang="en">
<head>
<script src="https://cdn.plot.ly/plotly-latest.min.js"></script>
</head>
{% comment %} <h1>Dash Home page</h1> {% endcomment %}
<body>
{% load plotly_dash %}
<div class="{% plotly_class name='SimpleExample' %} card" style="height: 100%; width: 100%">
{% plotly_app name='SimpleExample' ratio=0.65 %}
</div>
</body>
</html>
SimpleExample 是我的 DjangoDash 应用名称。
Django 网址:
urlpatterns = \[
path('',views.home, name='home-page'),
path('login',views.login_user.as_view(), name='login-url'),
path('plotly_home',views.dash, name='plotly-home'),
path('logout',views.logout_user, name='logout-url'),
path('django_plotly_dash', include('django_plotly_dash.urls'))
\]
plotly_home 端点将呈现显示破折号应用程序的 welcome.html 页面。
问题: 默认情况下,它在 html Iframe 中呈现我的破折号应用程序。 因此,任何更改或 URL 更改都不会反映在该 iframe 之外。所以 plotly dash 导航链接不起作用。
我有一个注销按钮,其中 href='/logout' 是 django 中的端点。因此,当您点击 /logout 时,它应该转到注销端点。但是没有任何事件发生。
期待 当我单击破折号的注销按钮时,它应该重定向到注销 url 端点。 只有 plotly dash 单独导航工作但使用 django_plotly_dash 库与 django 集成它不起作用。
任何帮助表示赞赏! 谢谢!