ValueError:服务器必须是Flask应用或布尔值

时间:2019-06-23 15:15:02

标签: django plotly-dash

我正在尝试通过django-plotly-dash documentation中最简单的仪表板示例进行研究,但是我一直在上面获取ValueError。

对于以下代码,假设django项目名称为 django_project ,而django应用程序名称为 dashboard

我在 django_project / urls.py 上的ROOT_URLCONF具有以下相关代码:

import dashboard.dash_app
from dashboard.views import test_view

urlpatterns = [
    ...
    path('dashboard/', test_view, name='test_view'),
    path('django_plotly_dash/', include('django_plotly_dash.urls')),
]

位于 dashboard / views.py 的我的仪表板应用程序视图如下:

from django.shortcuts import render

def test_view(request):
    return render(request, 'dashboard/main.html')

main.html 模板如下:

from django.shortcuts import render

def test_view(request):
    return render(request, 'dashboard/main.html')
{% load plotly_dash %}

{% plotly_app name="SimpleExample" %}

最后,在名为 dashboard / dash_app.py 的文件中创建DjangoDash应用实例。如前所述,该模块如上所述导入django_project / urls.py中。代码如下:

import dash
import dash_core_components as dcc
import dash_html_components as html

from django_plotly_dash import DjangoDash

app = DjangoDash('SimpleExample')

app.layout = ...

@app.callback(...)
def callback_color(...):
    ...

在调试过程中,我仅有的其他看似相关的信息是 base_pathname 是'/ django_plotly_dash / app / SimpleExample /'

还有其他想法吗?

2 个答案:

答案 0 :(得分:1)

这是由2019年6月20日对Dash 1.0版的最新更新引起的。 Dash类现在检查以确保server是布尔值还是Flask的实例。由于django plotly_dash使用它自己的PseudoFlask对象,因此它无法通过此检查,并且与Dash 1.0不兼容,因此需要更新以与当前Dash版本一起使用。

答案 1 :(得分:0)

我今天遇到了同样的问题。使用较旧版本的Dash(0.43.0)为我解决了该问题。