将 django 模型 class 导入 Plotly-Dash 无状态应用程序
Import django model class into Plotly-Dash stateless app
我正在尝试使用 django-plotly-dash 构建一个仪表板应用程序。从 .CSV 文件中提取数据时,我能够启动应用程序并 运行 但这很慢。为了加快速度,我将数据导入我的后端 Postgresql 服务器,并在我的 Django 项目的页面应用程序中创建了一个模型。当我尝试将特定 table 从我的模型导入到不同文件夹中的无状态 DjangDash 应用程序时,问题就来了。我不断收到的错误是 "unable to import pages.models"
文件夹结构:
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
,table 或 class 在 models.py
文件中,名为 general_finance_metrics
到目前为止,我已经在我的 appOne.py 文件中尝试了以下操作,但没有成功:
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 应用程序不在单个应用程序内,而是在Django 项目。
Can't get Python to import from a different folder
import django models classes into utility module
appOne.py代码:
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代码:
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代码:
from django.contrib import admin
from .models import general_finance_metrics
urls.py代码:
from django.urls import path
from dash_apps.finished_apps import appOne
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
index.html代码:
<body>
{% load plotly_dash %}
<div class="{% plotly_class name='appOne' %} card" style="height: 100%; width: 100%;">
{% plotly_app name='appOne' ratio=0.95 %}
</div>
</body>
Dash 和 Django 都提供应用程序框架。如果你想在另一个中使用一个,那么你必须选择嵌入哪个。
您是否正在尝试在 Django 中使用 Dash?如果是这样,那么 django-plotly-dash
包允许您通过 Django 模板使用 Dash 应用程序。
另一方面,如果您尝试在 Dash 应用程序中使用 Django 的片段——从您的代码片段中听起来是这样的——那么您可能会发现这非常困难,如果不是的话不可能。
您需要确保 appOne.py
文件可以被 views.py
导入(以及任何其他正在使用它的文件)。 python 的旧版本将需要 dash_apps
和 finished_apps
文件夹中的 __init__.py
个文件。
一旦可以导入 appOne.py
,其中的 from pages.models import general_finance_metrics
语句就足够了。
我正在尝试使用 django-plotly-dash 构建一个仪表板应用程序。从 .CSV 文件中提取数据时,我能够启动应用程序并 运行 但这很慢。为了加快速度,我将数据导入我的后端 Postgresql 服务器,并在我的 Django 项目的页面应用程序中创建了一个模型。当我尝试将特定 table 从我的模型导入到不同文件夹中的无状态 DjangDash 应用程序时,问题就来了。我不断收到的错误是 "unable to import pages.models"
文件夹结构:
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
,table 或 class 在 models.py
文件中,名为 general_finance_metrics
到目前为止,我已经在我的 appOne.py 文件中尝试了以下操作,但没有成功:
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 应用程序不在单个应用程序内,而是在Django 项目。
Can't get Python to import from a different folder
import django models classes into utility module
appOne.py代码:
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代码:
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代码:
from django.contrib import admin
from .models import general_finance_metrics
urls.py代码:
from django.urls import path
from dash_apps.finished_apps import appOne
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
index.html代码:
<body>
{% load plotly_dash %}
<div class="{% plotly_class name='appOne' %} card" style="height: 100%; width: 100%;">
{% plotly_app name='appOne' ratio=0.95 %}
</div>
</body>
Dash 和 Django 都提供应用程序框架。如果你想在另一个中使用一个,那么你必须选择嵌入哪个。
您是否正在尝试在 Django 中使用 Dash?如果是这样,那么 django-plotly-dash
包允许您通过 Django 模板使用 Dash 应用程序。
另一方面,如果您尝试在 Dash 应用程序中使用 Django 的片段——从您的代码片段中听起来是这样的——那么您可能会发现这非常困难,如果不是的话不可能。
您需要确保 appOne.py
文件可以被 views.py
导入(以及任何其他正在使用它的文件)。 python 的旧版本将需要 dash_apps
和 finished_apps
文件夹中的 __init__.py
个文件。
一旦可以导入 appOne.py
,其中的 from pages.models import general_finance_metrics
语句就足够了。