Отображение графиков с помощью Plotly на основе Django, url - проблема просмотра - PullRequest
0 голосов
/ 24 сентября 2019

Я пытаюсь показать график рассеяния, созданный plotly на plots.py, и показать в html на simulator.html.Проблема в том, что когда я запускаю сервер со следующими кодами, он показывает основную ошибку при доступе к http://127.0.0.1:8000/simulator/, как показано ниже.Как вы можете видеть на settings.py, я считаю, что все необходимые настройки должны быть выполнены.Не могли бы вы, ребята, выяснить, в чем причина этой ошибки и как ее исправить, пожалуйста?

Сообщение об ошибке:

TemplateDoesNotExist at /simulator/
simulator.html
Request Method: GET
Request URL:    http://127.0.0.1:8000/simulator/
Django Version: 2.2.4
Exception Type: TemplateDoesNotExist
Exception Value:    
simulator.html
Exception Location: /Users/user/.pyenv/versions/3.7.3/lib/python3.7/site-packages/django/template/loader.py in select_template, line 47
Python Executable:  /Users/user/.pyenv/versions/3.7.3/bin/python3
Python Version: 3.7.3
Python Path:    
['/Users/user/Desktop/Django/price_simulator',
 '/Users/user/.pyenv/versions/3.7.3/lib/python37.zip',
 '/Users/user/.pyenv/versions/3.7.3/lib/python3.7',
 '/Users/user/.pyenv/versions/3.7.3/lib/python3.7/lib-dynload',
 '/Users/user/.pyenv/versions/3.7.3/lib/python3.7/site-packages',
 '/Users/user/.pyenv/versions/3.7.3/lib/python3.7/site-packages/IPython/extensions']
Server time:    Tue, 24 Sep 2019 11:14:59 +0000

симулятор.html

{% extends 'base.html' %}

{% block customcss %}
{% endblock customcss %}

{% block header %}
<script src="https://cdn.plot.ly/plotly-latest.min.js"></script>
</div>
{% endblock header %}
<div class="card" style="width: 100%;margin-top: 15px">
        <div class="card-body">
            <h5 class="card-title">title</h5>
            {{ scatter|safe }}
        </div>
      </div>

Извлечение settings.py:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'simulatorapp'
]
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [BASE_DIR, 'templates'],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

url.py в папке приложения:

from django.shortcuts import render
from django.http.response import HttpResponse
from django.contrib.auth.models import User
from django.contrib.auth import authenticate, login
from django.shortcuts import redirect
import pandas as pd
from django.views.generic import TemplateView

from . import plots

class ScatterView(TemplateView):
    template_name='simulator.html'
    def get_context_data(self, **kwargs):
        context = super(ScatterView, self).get_context_data(**kwargs)
        context['scatter'] = plots.get_scatter()
        return context

views.py:

from django.urls import path
from .views import signupfunc, loginfunc
from django.conf import settings
from django.conf.urls.static import static
from .views import ScatterView

urlpatterns = [
    path('signup/', signupfunc, name='signup'),
    path('login/', loginfunc, name='login'),
    path('simulator/', ScatterView.as_view(), name='simulator'),
]

1 Ответ

0 голосов
/ 24 сентября 2019

Это не имеет никакого отношения к URL или просмотрам.Как говорит ошибка, Django не находит ваш шаблон;это потому, что вы не правильно указали DIRS.Должно быть:

    'DIRS': [os.path.join(BASE_DIR, 'templates')], 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...