Многостраничное приложение da sh на сервере Django с библиотекой django -plotly-da sh - PullRequest
0 голосов
/ 04 августа 2020

У меня есть многостраничное приложение da sh, которое я хочу использовать вместо Django с библиотекой django -plotly-da sh. Структура основного приложения da sh:

app.py

import dash
import dash_bootstrap_components as dbc
from django_plotly_dash import DjangoDash

app = DjangoDash('dash_integration_id', suppress_callback_exceptions=True)

Файл индексной навигации приложения da sh:

index.py

import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output, State
import dash_bootstrap_components as dbc

from django_dash.app import app
# import all pages in the app
from django_dash.apps import app1, app2

# embedding the navigation bar
app.layout = html.Div([
    dcc.Location(id='url', refresh=False),
    html.Div(id='page-content'),
])

@app.callback(Output('page-content', 'children'),
              [Input('url', 'pathname')])
def display_page(pathname):

    if pathname == '/app1/':
      
        return app1.layout
   
    else:
        return app2.layout


if __name__ == '__main__':
    app.run_server(8050, debug=True)

Я вызываю приложение Djann go da sh в app1. html

app1 . html

{%load plotly_dash%}
<!DOCTYPE html>
<html>
<head>
....
</head>
<body>
    <main>
        {% plotly_app name='dash_integration_id' ratio=0.45 %}


    </main>

</body>
</html>

Мой url.py в django приложении:

urls.py

from django.contrib import admin
from django.conf.urls import url
from django.urls import path, include
from django.views.generic import TemplateView
from django.conf import settings
from django.conf.urls.static import static

# Loading plotly Dash apps script
import django_dash.index

urlpatterns = [
    
    url('^app1$', TemplateView.as_view(template_name='app1.html'), name="app1"),
    url('^django_plotly_dash/', include('django_plotly_dash.urls')),
    path('', TemplateView.as_view(template_name='app1.html')),

    url('^app2$', TemplateView.as_view(template_name='app2.html'), name="app2"),
    url('^django_plotly_dash/', include('django_plotly_dash.urls')),
    path('', TemplateView.as_view(template_name='app2.html')),
] 

На обеих страницах я получаю макет app2. Но как я могу различать два приложения python, чтобы вызывать их на каждой странице html, поскольку идентификатор, который получает DjangoDa sh, предназначен для запуска всего приложения?

Я также посоветовал онлайн-документацию of django -plotly-da sh (https://django-plotly-dash.readthedocs.io/en/latest/), чтобы получать информацию о различных параметрах, которые получают функцию sh DjangoDa (например, da, slug), но безуспешно.

...