Import django model class into Plotly-Dash stateless app
我正在尝试使用django-plotly-dash构建仪表板应用程序。从.CSV文件中提取数据时,我能够启动并运行该应用程序,但这很慢。为了加快速度,我将数据导入到后端Postgresql服务器中,并在Django项目的pages应用程序中创建了一个模型。当我尝试将模型中的特定表导入其他文件夹中的无状态DjangDash应用程序时,就会出现问题。我不断收到的错误是
文件夹结构:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | DjangoProject >dash_apps >finished_apps -appOne.py >pages -__init__.py -admin.py -apps.py -models.py -test.py >base -__init__.py -asgi.py -routing.py -settings.py -urls.py -wsgi.py >templates >pages -index.html -manage.py |
该应用程序名为
到目前为止,我已经在我的appOne.py文件中尝试了以下操作,但是没有运气:
1 2 3 4 5 6 7 8 9 10 11 12 | from pages.models import general_finance_metrics (error: unable to import 'pages.models' pylint (import-error)) from DjangoProject.pages.models import general_finance_metrics (error: unable to import 'DjangoProject.pages.models' pylint (import-error)) from .models import general_finance_metrics (error: attempted relative import beyond top-level package pylint (relative-beyond-top-level)) from base.models import general_finance_metrics (error: unable to import 'base.models' pylint (import-error)) from base import models (error: unable to import 'base' pylint (import-error)) from pages import models (error: unable to import 'pages' pylint (import-error)) |
我仔细研究了这些其他问题,但除非我忽略了它,否则找不到有效的答案,但我相信我的情况与这些有所不同,因为DASH应用程序不在单个应用程序内部而是在DASH应用程序内部DjangoProject。
Django:无法从另一个应用程序导入模型
Django 2 ImportError:无法导入模型
无法让Python从其他文件夹导入
将django模型类导入实用程序模块
appOne.py代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | import numpy as np import pandas as pd import datetime import dash_core_components as dcc import dash_html_components as html from dash.dependencies import Input, Output import plotly.graph_objs as go from django_plotly_dash import DjangoDash from django.db import models from pages.models import general_finance_metrics # error occurs here df = pd.DataFrame(general_finance_metrics.objects.all().values()) |
models.py代码:
1 2 3 4 5 6 7 | class general_finance_metrics(models.Model): columnOne = models.TextField(blank=True, null=True) columnTwo = models.TextField(blank=True, null=True) columnThree = models.TextField(blank=True, null=True) def __str__(self): return self.columnOne |
admin.py代码:
1 2 | from django.contrib import admin from .models import general_finance_metrics |
urls.py代码:
1 2 3 4 5 6 7 | from django.urls import path from dash_apps.finished_apps import appOne from . import views urlpatterns = [ path('', views.index, name='index'), ] |
index.html代码:
1 2 3 4 5 6 | <body> {% load plotly_dash %} {% plotly_app name='appOne' ratio=0.95 %} </body> |
您需要确保您的
一旦
Dash和Django都提供了应用程序框架。如果要在另一个内部使用,则必须选择要嵌入的一个。
您是否要在Django中使用Dash?如果是这样,则
另一方面,如果您尝试在Dash应用程序中使用Django片段-从代码段中听起来很像-那么您可能会发现相当困难,如果没有的话不可能。